[TOC]
同源策略
- 同源策略为了解决这样一个问题,用户访问了 A 银行网站,然后又访问了 B 社交网站,如果没有同源策略,B 就可以读取 A 存放在浏览器中的 cookie
非同源
- 域名不同
- 端口不同
- 协议不同
限制
- Cookie,localStorage 和 IndexDB 无法读取
- Dom 无法获得
- Ajax 请求不能发送
规避同源的策略
cookie
- 如果一级域名相同(说明是同一个网站),但二级域名不同,可以通过设置
document.domain = '一级域名'
来规避这个问题 - 问题:该方法对 localStorage 和 IndexDB 无效
Ajax
- 按照规定,ajax 只能发送给同源网址,有下面三种方式可以规避这个限制
- JSONP
- WebSocket
- CORS
- JSONP:通过