微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发出跨源请求时出现 SharedArrayBuffer 错误

如何解决发出跨源请求时出现 SharedArrayBuffer 错误

我们有一个本地开发环境 (localhost/),可与远程服务器 (api-dev.host.com) 上的开发 API 进行通信。

在最新的 Chrome 升级后,我在尝试从本地主机与远程服务器通信时收到以下控制台错误

[Deprecation] SharedArrayBuffer will require cross-origin isolation as of M92,around July 2021. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.

虽然错误中的链接确实显示了一些信息,但我不清楚如何解决这个问题。 有没有办法从后端解决这个问题?任何答案将不胜感激。

解决方法

根据错误消息中的 link,这是由于 Chrome v92 中实施的新安全功能所致。

Chrome v92 现在需要 Cross-Origin-Resource-Policy 标头才能在两个或多个源之间共享资源。我假设您正在尝试使用 api-dev.host.com 设置的 cookie 或其他资源,因此您需要实现标头或将 CORS 配置设置为 Access-Control-Allow-Origin: *

如果您没有将 Access-Control-Allow-Origin 设置为 *,您可以使用以下 Nginx 配置设置 Cross-Origin-Resource-Policy 标头:

add_header Cross-Origin-Resource-Policy 'cross-origin' always;

标头有多个不同的值,但 cross-origin 将允许您访问源之间的资源(localhostapi-dev.host.com 是不同的源)。

请注意,您可能有 SameSite=Lax 或其他配置。为了访问应该由远程服务器与 Cross-Origin-Resource-Policy 一起设置的 cookie,您需要具有以下 cookie 配置(您可以检查您的 cookie SameSite 配置 here):

SameSite=None; Secure;

假设您尝试访问由不同来源的远程服务器设置的 cookie,并且没有将 Access-Control-Allow-Origin 设置为 *,这应该可以工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?