SharePoint Online 新式网站存在 URL 包含空格的问题

SharePoint Online modern sites have an issue with URL contains spaces

我们的客户(至少两个来自不同地区)报告了访问包含 URL 中空格的 SharePoint 网站的问题。在新标签页中打开一些网站后,他们得到

经过一些调查,我们发现 SharePoint 站点在浏览器中注册了 Service Worker。

Service Worker 拦截来自当前页面的所有请求,应用一些逻辑,逻辑中的一个分支导致错误。 让我解释一下会发生什么: 当您在站点上有自定义主页时,您导航到根站点 URL 就像 https://tenant.sharepoint.com/sites/mysite, SharePoint will automatically redirect you to the custom home page like https://tenant.sharepoint.com/sites/mysite/SitePages/MyCustomHP.aspx 所有这些请求都由 Service Worker 处理,它将此重定向视为重新验证的触发器并将您发送到 Authenticate.aspx 按顺序,Authenticate.aspx 工作不正确:

重现步骤:

  1. 打开任何现代团队网站(在 Edge 或 Chrome,我在 Edge 中试过) (喜欢https://tenant.sharepoint.com/sites/my-team
  2. 创建一个带有空格的现代子站点并导航到它。 (例如带空格的 https://tenant.sharepoint.com/sites/my-team/Site
  3. 打开子站点上的页面库并创建自定义站点页面
  4. 设为首页
  5. 打开新标签页并粘贴 URL [https://tenant.sharepoint.com/sites/Site 带空格]

你可以在上面看到结果。嗯...无法访问此页面

问题:

  1. 为什么 Authenticate.aspx 工作不正常?
  2. 可能是Service Worker里面的逻辑有问题?并且这种重定向不应该导致重新认证或者它应该通过其他方式将参数编码为Authenticate.aspx?
  3. 什么时候修复:)?

可能的解决方法

  1. 在开发工具中清除IndexedDB/Route.Config并重启Service Worker
  2. 更改 URL 并删除空格

Microsoft 已在 2021-08-27 版本中修复了他们的 Service Worker 代码 现在,以前有错误的代码看起来像: 如您所见,添加了双重编码检查

查看上面的内容之前的样子。