同源策略
定义
不同源的页面之间,不准互相访问数据。这是浏览器故意设置的一个功能限制。
源
window.origin 或 location.origin 可以得到当前源
浏览器规定
如果 JS 运行在源 A 中,那么就只能获取源 A 的数据
不能获取源 B 的数据,即不允许跨域
CORS
突破浏览器限制的方法
response.setHeader(‘Access-Control-Allow-Origin’, ‘http://localhost:9990‘)
JSONP
什么是 JSONP?
由于某些浏览器(IE 6,7,8,9)不支持 CORS,所以采用
请求一个 JS 文件,JS 会执行一个回调,回调里面包含我们的数据
回调名字是随机生成的,用 callback 的参数传给后台,后台会再次返回并执行
JSON 的优点
可以跨域,兼容 IE
JSON 的缺点
由于 JSON 用的是 script 标签,所以它传入的数据不精确(拿不到状态码),也只能支持 get 请求,不支持 post