[TOC]

同源策略

  1. 同源策略为了解决这样一个问题,用户访问了 A 银行网站,然后又访问了 B 社交网站,如果没有同源策略,B 就可以读取 A 存放在浏览器中的 cookie

非同源

  1. 域名不同
  2. 端口不同
  3. 协议不同

限制

  1. Cookie,localStorage 和 IndexDB 无法读取
  2. Dom 无法获得
  3. Ajax 请求不能发送

规避同源的策略

cookie

  1. 如果一级域名相同(说明是同一个网站),但二级域名不同,可以通过设置 document.domain = '一级域名' 来规避这个问题
  2. 问题:该方法对 localStorage 和 IndexDB 无效

Ajax

  1. 按照规定,ajax 只能发送给同源网址,有下面三种方式可以规避这个限制
    1. JSONP
    2. WebSocket
    3. CORS
  2. JSONP:通过