同源策略和跨域
URL | 说明 | 是否允许通信 | |
---|---|---|---|
www.a.com/a.js | www.a.com/b.js | 同一域名下 | 允许 |
www.a.com/lab/a.js | www.a.com/script/b.js | 同一域名下不同文件夹 | 允许 |
www.a.com:8000/a.js | www.a.com/b.js | 同一域名,不同端口 | 不允许 |
www.a.com/a.js | www.a.com/b.js | 同一域名,不同协议 | 不允许 |
www.a.com/a.js | 70.32.92.74/b.js | 域名和域名对应ip | 不允许 |
www.a.com/a.js | script.a.com/b.js | 主域相同,子域不同 | 不允许 |
www.a.com/a.js | a.com/b.js | 同一域名,不同二级域名(同上) | 不允许(cookie这种情况下也不允许访问) |
www.cnblogs.com/a.js | www.a.com/b.js | 不同域名 | 不允许 |
特别注意两点:
- 如果是协议和端口造成的跨域问题“前台”是无能为力的,
- 在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。
“URL的首部”指window.location.protocol +window.location.host,也可以理解为“Domains, protocols and ports must match”。
本作品采用《CC 协议》,转载必须注明作者和本文链接