1.浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。
2.这一策略极其重要,如果没有同源策略,可能a.com的一段JavaScript脚本,在b.com未曾加载此脚本时,也可以随意修改b.com的页面(在浏览器显示中)。为了不让浏览器的页面行为发生混乱,浏览器提出“Origin”(源)这一概念,来自不同Origin的对象无法相互干扰,如下例所示
从上表可以看出,影响”源”的因素有:host(域名或IP地址)、子域名、端口、协议。
需要注意的是,对于当前页面来说,页面内存放JavaScript文件的域并不重要,重要的是加载JavaScript的页面所在的域是什么。举例说明:a.com通过如下代码
加载了b.com上的b.js。因为b.js是运行在a.com上的,所以b.js的域就是a.com。
3.在浏览器中,