同源
只有当
protocol(协议)、domain(域名)、port(端口)三者一致。
不同的域意味着,与网站使用的顶级域不同的域。
不同协议:比如http https
case:
解决方法:
1.本地http 对应路线都要是http,但是网关http nginx不接受http
2.http访问https有严格跨域限制,无法访问 Allow CORS: Access-Control-Allow-Origin 安装插件可解决
Allow CORS: Access-Control-Allow-Origin
正常这个url是可以跑通的,浏览器安全策略拦截了,只需要修改response的Access-Control-Allow-Origin: *就可以了
跨域资源共享或CORS是一种策略,它允许浏览器获得从不同域上的服务器访问资源的权限。不同的域意味着,与网站使用的顶级域不同的域。例如,如果一个页面位于domain-1.com中,并且希望从domain-2.com发出图像请求,则这称为CORS请求。现代浏览器理解CORS策略,一旦服务器请求,就不允许跨域资源共享。当您激活此插件时,CORS始终允许所有网站使用,无论服务器请求什么
Allow-Control-Allow-Origin插件修复这个问题了吗
当然是没有,插件仅仅是关闭了浏览器的同源策略检查而已。插件会在每次请求的response中加入一个
Access-Control-Allow-Origin: *
的head罢了,以此来欺骗浏览器仿佛服务器真的允许所有源的访问。
搞清楚了原因,我们知道我们不能掩耳盗铃。也许你知道,服务端会对你的线上页面放行,所以你在本地开发时用插件跳过检查。但如果你要使用其他的API,插件就不一定能帮你“修好”这个问题了。就想前面说过的,你不可能指望所有你网站的用户,都会安装这个插件。
Loading...