2

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

在最新的 Chrome 升级后,尝试从 localhost 与远程服务器通信时出现以下控制台错误:

[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.

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

4

1 回答 1

3

根据错误消息中的链接,这是由于 Chrome v92 中实施了一项新的安全功能。

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

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

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

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

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

SameSite=None; Secure;

假设您尝试访问由单独来源的远程服务器设置的 cookie 并且没有Access-Control-Allow-Origin设置为*.

于 2021-06-01T08:50:20.063 回答