简单来说跨域是 JavaScript 同源策略的限制,a.com 域名下的 js 无法操作 b.com 或是 c.a.com 域名下的对象和方法
看如下例子:
同一域名下 【允许通信】
http://www.a.com/a.js
http://www.a.com/b.js同一域名下不同文件夹 【允许通信】
http://www.a.com/lab/a.js
http://www.a.com/script/b.js同一域名,不同端口 【不允许通信】
http://www.a.com:8000/a.js
http://www.a.com/b.js同一域名,不同协议 【不允许通信】
http://www.a.com/a.js
https://www.a.com/b.js域名和域名对应ip 【不允许通信】
http://www.a.com/a.js
http://70.32.92.74/b.js主域相同,子域不同 【不允许通信】
http://www.a.com/a.js
http://script.a.com/b.js同一域名,不同二级域名(同上) 【不允许(cookie这种情况下也不允许访问)】
http://www.a.com/a.js
http://a.com/b.js不同域名 【不允许通信】
http://www.cnblogs.com/a.js
http://www.a.com/b.js
同源策略(same-origin policy)
同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。
原文链接:http://www.cnblogs.com/hustskyking/archive/2013/03/31/CDS-introduce.html