如何使我的站点与即将到来的 SharedArrayBuffer 跨源隔离更改兼容

Jac*_*cob 5 javascript sharedarraybuffer cross-origin-embedder-policy

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

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

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

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

age*_*tmr 3

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

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

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