「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」
背景:由于公司业务的原因,需要在本地环境打开一个服务去获取相关的资源,前几个月还是可以正常使用。但最近测试回归,出现了在线网址访问本地localhost提示跨域的问题。经过仔细的排查发现chrome安全策略发生了更新。
chrome安全策略更新内容
Chrome 正在计划禁止从非安全网站发起的专用网络请求,目的是保护用户免受针对专用网络上的路由器和其他设备的跨站点请求伪造 (CSRF) 攻击:
简而言之,就是你在线部署的网站(以http协议开头的),现在都是无法正常访问本地的开启服务资源的。
解决方法
打开浏览器,进入chrome://flags
搜索Block insecure private network requests

设置为Disabled,Relaunch就好了。
如果你的网站需要向 localhost 发出请求,那么你只需要将你的网站升级到 HTTPS。
混合内容不会阻止以 http://localhost(或 http://127.*.*.*、http://)为目标的请求,即使是从安全上下文发出的。
请注意,这里有个坑,WebKit 引擎和基于它的浏览器(比如 Safari)这里并没有遵循 W3C 混合内容规范,上面这些请求会作为混合内容并禁止访问。它们也没有实现专用网络访问,因此网站如果使用此类浏览器的客户端,需要使用 HTTP 协议,此类浏览器仍允许向 localhost 发出请求。请注意,这里有个坑,WebKit 引擎和基于它的浏览器(比如 Safari)这里并没有遵循 W3C 混合内容规范,上面这些请求会作为混合内容并禁止访问。它们也没有实现专用网络访问,因此网站如果使用此类浏览器的客户端,需要使用 HTTP 协议,此类浏览器仍允许向 localhost 发出请求。
存在的问题
