源:(协议、域名、端口)
比如:某个网站完整的地址:http://www.baidu.com:8000 其中,http 为协议,www.baidu.com 是域名,8000 是端口
同源、跨域:
同域名、同端口、同协议,就叫同源。不同源就叫跨域
同源策略:
是一种约定,它是浏览器最核心也最基本的安全功能。
所谓同源策略,指的是浏览器对不同源的脚本或者文本的访问方式进行的限制。比如源a的js不能读取或设置引入的源b的元素属性。那么先定义下什么是同源,所谓同源,就是指两个页面具有相同的协议,主机(也常说域名),端口,三个要素缺一不可。
看下面的比较就一目了然了:
URL1 | URL2 | 说明 | 是否允许通信 |
---|---|---|---|
http://www.foo.com/js/a.js | http://www.foo.com/js/b.js | 协议、域名、端口都相同 | 允许 |
http://www.foo.com/js/a.js | http://www.foo.com:8888/js/b.js | 协议、域名相同、端口不同 | 不允许 |
https://www.foo.com/js/a.js | http://www.foo.com/js/b.js | 域名相同、端口相同、协议不同 | 不允许 |
http://www.foo.com/js/a.js | http://www.bar.com/js/b.js | 协议、端口相同、域名不同 | 不允许 |
http://www.foo.com/js/a.js | http://foo.com/js/b.js | 协议、端口相同、主域名相同、子域名不同 | 不允许 |