一次跨域cors报错 报错情形为在内网穿透时,前端请求后端php时,报错跨域错误
报错内容为 cors报错
The request client is not a secure context and the resource is in more-private address space `local`
译文:请求客户端不是一个安全的上下文,资源位于更私有的地址空间“本地”。
该报错原因为:Chrome浏览器禁止外部公网请求访问本地,被CORS策略阻止。即“不安全的请求方请求了更私有的本地资源”
chrome浏览器从94版本开始,谷歌针对不安全网站(不安全的公网)访问私有网络(本地网络)进行了更新,阻止这种访问更私有资源的请求。
查找后发现是因为使用了内网穿透的http公网域名访问了本地调试站点的php后端服务 导致这个报错
这个报错跟后端程序无关 即使后端完全放行跨域访问(即响应头返回Access-Control-Allow-Origin:'*') 也是会报错cors跨域错误, 因为这是chrome浏览器的报错
解决方法:
1 要访问本地资料的公网http域名升级成https 比较麻烦 参考 https://blog.youkuaiyun.com/jie_rookie/article/details/131830009
2 chrome浏览器设置禁用此报错 参考 https://blog.youkuaiyun.com/Flywithdawn/article/details/128253604,方法如下:输入chrome://flags