由于浏览器的同源策略保护机制,浏览器不能执行来自其他来源的脚本。通过 js 在不同的域之间进行数据传输或通信,比如用 ajax 向一个不同的域请求数据,或者通过 js 获取页面中不同域的框架中(iframe)的数据的操作就叫
跨域
。
所谓同源,就是指协议、域名(IP)、端口三者都相同。只要有其中一者不相同,都是跨域,无法进行数据的交流。例如:
注意的是,localhost 与 本机的 IP 地址也属于跨域。
浏览器执行 javascript 脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。