这几个参考链接讲得比较好,感觉没比较自己再做整理,仅做一个知识索引。看完就能明白同源和跨域是怎么回事。
同源策略(same-origin policy)
最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页同源。
三个相同
- 协议相同
- 域名相同
- 端口相同
三种行为限制
- Cookie,LocalStorage 和 IndexDB 无法读取
- DOM 无法获得
- AJAX 请求不能发送
参考
www.ruanyifeng.com/blog/2016/0…
CORS 跨域资源共享
CORS 是一个 W3C 标准,全称是"跨域资源共享"(Cross-origin resource sharing)。
它允许浏览器向跨源服务器,发出 XMLHttpRequest 请求,从而克服了 AJAX 只能同源使用的限制。
参考
www.ruanyifeng.com/blog/2016/0…
JSONP
jsonp 不是一种数据格式,跟 json 是两回事,而是一种跨域传输数据的技巧。
利用 script 标签的 src 可以跨域的性质,来加载跨域服务器的文件,该文件执行本地的函数,并且带有服务器传入的参数。