浏览器的同源策略

浏览器的同源策略是为了安全的考虑而设置的。

  

1.什么是同源:

如果两个 URL 的 protocol、port (en-US) (如果有指定的话)和 host **都**相同的话,则这两个 URL 是同源。

举例:
下表给出了与 URL http://store.company.com/dir/page.html 的源进行对比的示例,

浏览器的同源策略

  

2.什么是同源策略:

同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。

举例:
a.com下的js脚本采用ajax读取b.com里面的文件数据是会报错的,因为跨域了。

 

3.如果要跨域访问怎么办?下面是一种解决办法

•   CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。
它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

a.com的js脚本要访问b.com的资源,在b.com里面添加响应头声明允许a.com的访问,代码:
Access-Control-Allow-Origin: http://a.com
然后a.com就可以用ajax获取b.com里的数据了。
注意:此方法IE8以下完全不支持,IE8-10部分支持。详见caniuse-CORS

 

参考:
https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
https://www.cnblogs.com/rockmadman/p/6836834.html

上一篇:ES开启安全密码认证后,es-head连接方式


下一篇:深入浅出了解CORS原理与实践