h0099 最近的时间轴更新
h0099

h0099

V2EX 第 323482 号会员,加入于 2018-06-19 02:26:22 +08:00
今日活跃度排名 5454
h0099 最近回复了
From: "n0099" <[email protected]>
Date: 2021-04-20, 08:13
To: "Gao Yuan3" <[email protected]>
CC: "office365support" <[email protected]>, "OTS_SPO" <[email protected]>
Subject: Re:SR_2021041390874_SharePoint 服务端不支持 method 为 OPTIONS 的浏览器 CORS preflight 请求

没有了,十分感谢您这一周来的工作

------------------ Original ------------------
From: "Gao Yuan3"<[email protected]>;
Date: Tue, Apr 20, 2021 02:10 PM

用户您好,

这个 test.aspx 文件是属于您的 OneDrive 文件,访问时要在具有权限的前提下访问,例如登录您这个 OneDrive 文件所在的账号,才可以访问这个文件的数据。

没有权限而直接去访问,是会提示登录的:


如果这个类型的文件(aspx)允许通过匿名链接进行对外共享,那么外部用户无需具有权限,直接就可以访问。但是由于微软很早之前就取消了公共网站(任何人都可以访问),虽然通过将 aspx 文件设置为主页的方式并通过匿名链接共享可以达到公共网站的效果,但是由于已经取消了公共网站,aspx 文件也是不可以通过匿名链接的方式对外共享的,综上目前是无法通过匿名链接的方式共享 aspx 文件的
https://support.microsoft.com/zh-cn/office/%E8%A6%81%E5%81%9C%E7%94%A8%E7%9A%84-sharepoint-%E5%85%AC%E5%85%B1%E7%BD%91%E7%AB%99-e86bfd2f-5c7d-446f-a430-7cfcc0130916?ui=zh-CN&rs=zh-CN&ad=CN


请问您对此工单是否还有其他疑问?谢谢。

------------------ Original ------------------
From: n0099 <[email protected]>
Sent: 2021 年 4 月 20 日 5:46

我删除所有文件后重新上传可以正常访问了,但如何让它可以被公网访问?现在不带 cookie 访问 https://n0099.sharepoint.cn/sites/test/Shared%20Documents/test.aspx 会重定向到 o365 登录页

------------------ Original ------------------
From: "n0099"<[email protected]>;
Date: Tue, Apr 20, 2021 05:01 AM

我已经执行过了 Set-SPOSite -Identity https://n0099.sharepoint.cn/sites/test -DenyAddAndCustomizePages $false
html 里没有任何注释标签,内容如下:

<html>
<head>
<title>test</title>
</head>
<body>
<div id="root"></div>
<script src="https://unpkg.com/react/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.development.js"></script>
<script>
const e = React.createElement;

ReactDOM.render(
e('div', null, 'Hello World'),
document.getElementById('root')
);
</script>
<img src="https://placeimg.com/640/480/any/grayscale" />
</body>
</html>

但还是弹出浏览器下载

------------------ Original ------------------
From: "Gao Yuan3"<[email protected]>;
Date: Mon, Apr 19, 2021 04:47 PM

用户您好,

请问您对此工单是否还有其他疑问,是否可以关闭归档此工单?期待您的消息。

------------------ Original ------------------
From: Gao Yuan3
Sent: 2021 年 4 月 19 日 12:26

用户您好,

由于我们的技术支持范围不涉及开发,对这一部分接触也不是很多。
据我们了解,改 Set-SPOSite -Identity https://gytest.sharepoint.cn/sites/test -DenyAddAndCustomizePages $false 后,弹出下载文件可能是注释的问题,当 ASPX 文件中出现 HTML 的注释语言<!-- -->不是很多的时候,是可以允许一定的容错的,但是这种非标准的注释有很多的时候,就会有问题了。

您可以尝试将有问题的 ASPX 文件复制一份,然后将副本中所有的“<!—”替换成“<%--”,所有的“-->”替换成“--%>”,再上传此副本到云端来测试打开。
我这边测试可以在网页端直接打开了。



修改之前


------------------ Original ------------------
From: n0099 <[email protected]>
Sent: 2021 年 4 月 17 日 14:57

我之前已经在 3.中说明了你们设置了 acao:* response header 就是为了允许跨域请求下载的,但忘了设置 options 请求所以无法响应需要 preflight 的跨域请求(在此是带 range 分段下载文件 header 请求会让浏览器触发 preflight )

刚才研究了下 spo 如何托管 htmljs:
https://techcommunity.microsoft.com/t5/sharepoint/open-html-files-in-browser-sharepoint-online/m-p/130620
https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-permissivesetting
https://docs.microsoft.com/en-us/sharepoint/allow-or-prevent-custom-script
我已经用 management shell 执行了 Set-SPOsite <SiteURL> -DenyAddAndCustomizePages 0 ,但截至目前访问 spo 文档中的.aspx 文件仍然是弹出浏览器下载文件而不是浏览器显示 html

------------------ Original ------------------
From: "Gao Yuan3"<[email protected]>;
Date: Sat, Apr 17, 2021 08:31 AM

您好,

感谢您的回复。
设置/允许跨域请求数据,这个如果在本地 SPO 服务器上面应该是可以设置的,设置后浏览器 fetch OneDrive 的文件起码是能 promise 的,但是如果在 online 端,这些都是由后台的设置决定的,作为最终用户我们无法更改后台的设置,如果被 CORS policy 阻止,应该就是不可跨域,实在抱歉。

关于托管自定义 html js ,由于我们并非开发团队,平时主要处理的都是 SPO 使用上的问题,这个说实话平时也没怎么接触过这类问题,我找工作日时间和同事沟通了解一下再给您回复吧。

------------------ Original ------------------
发件人: n0099 <[email protected]>
发送时间: Saturday, April 17, 2021 7:16:16 AM
收件人: Gao Yuan3 <[email protected]>
抄送: office365support <[email protected]>; OTS_SPO <[email protected]>
主题: Re:SR_2021041390874_SharePoint 服务端不支持 method 为 OPTIONS 的浏览器 CORS preflight 请求

请问 sharepoint online 可以托管自定义 html js 吗?如果你们实在不愿意兼容 preflight 请求恐怕我只能直接托管到 sharepoint.cn 域上了

------------------ Original ------------------
From: "Gao Yuan3"<[email protected]>;
Date: Fri, Apr 16, 2021 04:47 PM

用户您好,

涉及到前端开发,以及跨域请求的问题,我这边也确实不是很了解,感谢您的理解。
https://www.21vbluecloud.com/office365/usersupport_o365/

对此类问题,我们所接触到的资源也很有限,无法给您提供更多信息,这个工单就给您关闭了。
如果您之后遇到与 O365 服务本身相关的问题,欢迎您再联系我们。
再次感谢您的理解。

------------------ Original ------------------
From: n0099 <[email protected]>
Sent: 2021 年 4 月 15 日 23:31

1.我知道这个问题属于自定义开发范围的问题,但你们解决这个问题并不困难,例如 iis10 中只需要改动几行配置即可实现: https://docs.microsoft.com/en-us/iis/extensions/cors-module/cors-module-configuration-referencehttps://blogs.iis.net/iisteam/getting-started-with-the-iis-cors-module
2.并不是我想要主动发 options 请求,而是浏览器为了检查服务端是否允许 cors (在这里是询问是否允许 range header ,也就是 Access-Control-Request-Headers: Range ),才去发送 preflight 请求,服务端应该返回具体允许的 cors 范围(在这里是 Access-Control-Allow-Headers: Range ),而不是 http405 或者你们所说的未支持 options method

而且这个 405 响应中的 allow header ( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Allow )也写了 options ,这与文档并不符
3.最开始我提到过“而在其他 GET 请求中 response header 中有设置 Access-Control-Allow-Origin: *,所以可以跨域请求”
例如

只要 request header 中有 origin (不论值如何),response header 中都会有 access-control-allow-origin: *,也就是服务端允许来自任何域的 cors 请求,因此你们设计上是允许跨域请求此 api 的,但由于某些原因没有设置 preflight 请求的响应,导致需要 preflight 的 cors 请求无法进行

------------------ Original ------------------
From: "Gao Yuan3"<[email protected]>;
Date: Thu, Apr 15, 2021 07:57 PM

用户您好,

浏览器的请求机制,我这边也不是很了解,因为涉及到开发,对此类问题我们的支持也比较有限。
但是可以看到 OPTIONS 这个请求方式就是不支持的。

------------------ Original ------------------
发件人: n0099 <[email protected]>
发送时间: Thursday, April 15, 2021 7:35:17 PM
收件人: Gao Yuan3 <[email protected]>
主题: Re:SR_2021041390874_SharePoint 服务端不支持 method 为 OPTIONS 的浏览器 CORS preflight 请求

产品设计不支持 cors preflight 从而导致浏览器内无法跨域请求?

------------------ Original ------------------
From: "Gao Yuan3"<[email protected]>;
Date: Thu, Apr 15, 2021 10:51 AM

用户您好,

感谢您的回复,由于我们这边是 O365 云端服务的支持团队,技术支持限于 Office 365 在线服务本身的故障或使用方面的问题,如果涉及到自定义开发,对于浏览器的调用机制,我这边也不是很了解,对此类问题我们的支持也比较有限,非常感谢您的理解。
https://www.21vbluecloud.com/office365/usersupport_o365/

以 user 为例,可以看到 OPTIONS 方法就是不被支持的,此限制为产品设计。

GET 是可以的。

请问您对该工单是否还有其他疑问?谢谢。

------------------ Original ------------------
From: n0099 <[email protected]>
Sent: 2021 年 4 月 14 日 16:54

但我需要在浏览器内调用 graph api ,而浏览器会发送 method 为 options 的 cors preflight 请求,这并不是我要发送的
如果浏览器通不过 preflight 就不会发出我实际要发出的 get 请求

------------------ Original ------------------
From: "Gao Yuan3"<[email protected]>;
Date: Wed, Apr 14, 2021 11:08 AM

用户您好,

OPTIONS 并不是我们常见的一个获取数据的方法,此方法可能就是不被支持的。
常用的方式是通过 Graph API 来获取数据,可以从官方文档中看到,也是只支持 GET 方法,没有 OPTIONS 方法
https://docs.microsoft.com/en-us/graph/use-the-api?view=graph-rest-1.0



------------------ Original ------------------
From: Gao Yuan3
Sent: 2021 年 4 月 13 日 19:31

用户您好,

根据您对问题的描述,我谨在此阐述我们双方针对这个问题所涉及范围界定:

问题定义:需要在浏览器前端中使用 range header 下载部分文件内容,但由于 SharePoint 服务端对任何 options 请求都返回 405 导致浏览器无法通过 cors preflight 进而发出实际跨域请求,而在其他 GET 请求中 response header 中有设置 Access-Control-Allow-Origin: *,所以可以跨域请求


问题范围:我们将协助您解决该问题,并将在该问题解决后关闭此工单。(不在 O365 技术支持范围内的问题除外)

接下来,我们将开始合作解决这个问题。如果您对以上的问题范围界定有任何异议,请尽快告知。如果您有其他任何疑问,也欢迎随时与我联系。

------------------ Original ------------------
From: Gao Yuan3
Sent: 2021 年 4 月 13 日 19:09

尊敬的 n0099 先生/女士 :
您好!感谢您联系世纪互联 Office 365 技术支持中心。我是 Office 365 技术支持工程师 Cowan ,很高兴有机会协助您处理问题! 您可以随时通过该工单号码 SR_2021041390874 与我们取得联系。
为了更好地保障技术支持工作的质量,请您在回复邮件时选择“回复所有人”。
感谢您的理解与支持,祝您工作顺利!
316 天前
回复了 chenqh 创建的主题 问与答 如何快速恢复重启前的应用呢?
316 天前
回复了 iqoo 创建的主题 程序员 分享一个空间利用率超高的 Base36 算法
347 天前
回复了 shendaowu 创建的主题 MySQL 求写一段生成数据库测试数据的代码
首先 19 个月过去了阁下还在折腾这个 https://en.wikipedia.org/wiki/Many-to-many_(data_model) 关系的 https://en.wikipedia.org/wiki/Associative_entity ?并试图继续滥用`提前优化` https://z.n0099.net/#narrow/near/93295 思维精神?
/t/908231
/t/908246
/t/909074

> 要么就是写入过程可以暂停和恢复,这个应该是没法实现的吧?

why not? 合理假设您是在 https://en.wikipedia.org/wiki/Cunningham's_Law

> 分段写入也可以,通过参数决定写入多少

这跟前面的可暂停本质上是一样的

> 写入速度越快越好,最好可以最大化利用 SSD

建议直接`LOAD csv` https://dev.mysql.com/doc/refman/8.4/en/load-data.html
并在写入前后开关 redolog https://dev.mysql.com/doc/refman/8.4/en/innodb-redo-log.html#innodb-disable-redo-logging

> 最好是几天时间能写入一千万行吧。如果没必要的话更少也可以。

一千万行?一千万亿行!

---
```sql
CREATE TABLE tag_content_rel(
rel_id INT PRIMARY KEY AUTO_INCREMENT,
tag_id INT NOT NULL,
content_id INT NOT NULL);
```
为什么不`UNIQUE(tag_id, content_id)`?还是说您的确需要允许出现重复的`(tag_id, content_id)`对?

> 我猜如果位置是有规律的可能查询性能会更好

对于将 PK 用做 clustered index (详见 https://github.com/n0099/open-tbm/issues/48#issuecomment-2091811880 的`12.1`)的 mysql innodb storage engine 中的表`tag_content_rel`只有`PRIMARY KEY(rel_id, tag_id, content_id)`后才会符合您的假设
2024-04-19 07:17:52 +08:00
回复了 netabare 创建的主题 程序员 这年头,参与开源项目还要付费才能参加了吗
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1653 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 16:17 · PVG 00:17 · LAX 09:17 · JFK 12:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.