【发布时间】:2021-08-26 12:01:38
【问题描述】:
我们的客户(至少有两个来自不同地区)报告了访问 URL 中包含空格的 SharePoint 网站的问题。在新标签中打开一些网站后,他们得到
经过一番调查,我们发现 SharePoint 网站在浏览器中注册了 Service Worker。
Service Worker 拦截来自当前页面的所有请求,应用一些逻辑并且逻辑中的一个分支导致错误。 让我解释一下会发生什么: 当您在网站上有自定义主页并导航到根网站 URL(例如 https://tenant.sharepoint.com/sites/mysite)时,SharePoint 会自动将您重定向到自定义主页(例如 https://tenant.sharepoint.com/sites/mysite/SitePages/MyCustomHP.aspx) 所有这些请求都由 Service Worker 处理,并将此重定向视为重新身份验证的触发器,并将您发送到 Authenticate.aspx 按顺序,Authenticate.aspx 工作不正确:
重现步骤:
- 打开任何现代团队网站(在 Edge 或 Chrome 中,我在 Edge 中尝试过) (如https://tenant.sharepoint.com/sites/my-team)
- 创建一个带有空格的现代子站点并导航到它。 (例如 https://tenant.sharepoint.com/sites/my-team/Site 带空格)
- 在子站点上打开页面库并创建自定义站点页面
- 设为首页
- 打开新选项卡并粘贴 URL [https://tenant.sharepoint.com/sites/带空格的站点]
您可以在上面看到的结果。嗯...无法访问此页面
问题:
- 为什么 Authenticate.aspx 工作不正常?
- 可能是Service Worker中的逻辑错误?并且这种重定向不应该导致重新认证,或者它应该通过其他方式将参数编码到 Authenticate.aspx?
- 什么时候修复:)?
可能的解决方法
- 在开发工具中清除 IndexedDB/Route.Config 并重启 Service Worker
- 更改网址并删除空格
【问题讨论】:
标签: sharepoint service-worker sharepoint-online