什么是同源策略?
浏览器出于安全方面的考虑,只允许与本域下的接口交互。
不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。
什么是本域
- 同协议:如都是
http
或者https
- 同域名:如都是
和
- 同端口:如都是
80
或者8080
端口
什么是同源
-
和
同源的目的是为了保证用户信息的安全,防止恶意的网站窃取数据
什么是不同源
- 协议不同:
和
- 域名不同:
和
- 端口不同:
和
什么是跨域?
接口请求由其它域名或端口提供时,会发起跨域。
跨域有几种实现形式?
- JSONP
- CORS
- 降域
- postMessage
JSONP 的原理是什么
- 定义回调函数
ret()
- 在创建
script
的src
地址执行后添加参数?callback=red
, 等同于<script
- 服务端在收到请求后返回数据,输出
ret(data)
字符串 -
ret(data)
此时会调用回调函数,把返回的data
做为参数处理
CORS是什么
CORS
全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。
服务端设置 "Access-Control-Allow-Origin", "*");
,则浏览器会处理响应,就可以拿到响应数据,否则无法拿到