Chrome94版本CORS跨域问题解决

5,310 阅读1分钟

问题

chrome更新之后,启动本地环境会报错如下 Access to Css stylesheet at 'http:xx' from origin 'http://xx' has been blocked by CORS policy: The request client is not a secure context and the resource is in more-prevate adddress space `local`

cors.png

原因

Chrome更新至94版本时,引入了弃用试验,部分用户升级后chrome会阻止Private Network request。

Private Network request是指目标站点的ip地址比请求发起者的ip地址更加私密。 例如,从公共网站 example.com 到私有网站 router.local 的请求,或从私有网站到 localhost 的请求。

弃用试验,个人理解为A/B Test,即升级之后,新功能仅对部分用户生效。

具体的更新日志可以参考developer.chrome.com/blog/privat…

解决

其实在chrome的更新日志中,已经给出解决方案了,就是将我们发出请求的站点的协议由http升级为https。如果需要访问ip地址的话,则需要将两端的协议都升级为https。

我是本地环境启动遇到了这个问题,原因我访问了本地的资源,所以我更新了chrome的配置

chrome://flags/#block-insecure-private-network-requests

将上述配置设置为disabled即可。