javascript - 如何使我的网站与即将到来的 SharedArrayBuffer 跨域隔离更改兼容
问题描述
因此,我读到 Chrome 即将进行更改,以启用 SharedArrayBuffer 的使用,特别是“使您的网站“跨域隔离””。我的站点使用了不符合此要求的外部 API。所以我所做的是,使用子域将使用 SharedArrayBuffer 的代码卸载到 iframe 中,并将所需的标头添加到该页面。现在阅读更多内容,似乎我仍然需要为顶级文档提供所需的标题,否则我仍然会在控制台中收到警告。
澄清一下,我的网站现在使用以下结构:
app.website.com
-> 包含完整的应用程序功能service.website.com
-> 包含使用 SharedArrayBuffer 的功能
我以为我可以简单地添加所需的标题service.website.com
,一切都会正常工作,但我仍然收到跨源警告。有任何想法吗?
解决方案
SharedArrayBuffer 只能在整个帧链处于跨域隔离的环境中启用。即使你嵌入了使用的页面,SharedArrayBuffer
父页面也必须是跨域隔离的。
如果 UX 可用于此目的,一种可能的解决方法是打开一个跨域隔离的弹出窗口。一个警告是跨域隔离页面将无法与其他窗口进行通信。
我知道这很痛苦,但出于安全原因需要跨域隔离。
推荐阅读
- javascript - 如果未单击页面,为什么 onbeforeunload 不会触发?
- c# - 通过位移组合两个可变长度的字节数组
- php - 如何将数据从控制器传递到codeigniter3中的自定义钩子
- javascript - 如何在 vis.js 时间线中获取开始和结束时间?
- mysql - MYSQL - 如何使用 group by 获取每个类型字段中的最新记录
- vba - 循环隐藏工作表
- java - 仅当子字符串是整个单词时才替换字符串中的所有子字符串
- r - 如何将 PAD 函数(来自 PADR() 包)用于多个数据帧?
- java - API 测试。如何管理有效负载
- sql-server - 在 SQL Server 中根据时间可用性过滤表记录