7

因此,我读到 Chrome 即将进行更改,以启用 SharedArrayBuffer 的使用,特别是“使您的网站“跨域隔离””。我的站点使用了不符合此要求的外部 API。所以我所做的是,使用子域将使用 SharedArrayBuffer 的代码卸载到 iframe 中,并将所需的标头添加到该页面。现在阅读更多内容,似乎我仍然需要为顶级文档提供所需的标题,否则我仍然会在控制台中收到警告。

澄清一下,我的网站现在使用以下结构:

  • app.website.com-> 包含完整的应用程序功能
  • service.website.com-> 包含使用 SharedArrayBuffer 的功能

我以为我可以简单地添加所需的标题service.website.com,一切都会正常工作,但我仍然收到跨源警告。有任何想法吗?

4

1 回答 1

2

SharedArrayBuffer 只能在整个帧链处于跨域隔离的环境中启用。即使你嵌入了使用的页面,SharedArrayBuffer父页面也必须是跨域隔离的。

如果 UX 可用于此目的,一种可能的解决方法是打开一个跨域隔离的弹出窗口。一个警告是跨域隔离页面将无法与其他窗口进行通信。

我知道这很痛苦,但出于安全原因需要跨域隔离。

于 2021-04-01T08:40:28.350 回答