Eagle

什么是跨域?

2018-06-11

简单来说跨域是 JavaScript 同源策略的限制,a.com 域名下的 js 无法操作 b.com 或是 c.a.com 域名下的对象和方法

看如下例子:

  1. 同一域名下 【允许通信】
    http://www.a.com/a.js
    http://www.a.com/b.js

  2. 同一域名下不同文件夹 【允许通信】
    http://www.a.com/lab/a.js
    http://www.a.com/script/b.js

  3. 同一域名,不同端口 【不允许通信】
    http://www.a.com:8000/a.js
    http://www.a.com/b.js

  4. 同一域名,不同协议 【不允许通信】
    http://www.a.com/a.js
    https://www.a.com/b.js

  5. 域名和域名对应ip 【不允许通信】
    http://www.a.com/a.js
    http://70.32.92.74/b.js

  6. 主域相同,子域不同 【不允许通信】
    http://www.a.com/a.js
    http://script.a.com/b.js

  7. 同一域名,不同二级域名(同上) 【不允许(cookie这种情况下也不允许访问)】
    http://www.a.com/a.js
    http://a.com/b.js

  8. 不同域名 【不允许通信】
    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

Tags: 跨域