同源策略
什么是同源策略?
同源策略是指浏览器处于安全考虑的情况下,只允许本域下的借口进行交互。不同源的客户端在没有授权的情况下是不允许获取对方资源的。
本域指的是什么?
- 同协议:例如相同的http或https
- 同域名:例如https://baidu.com/aaa 和 https://baidu.com/bbb
- 同端口:例如8080端口
跨域
跨域是指通过其他方法在其他域下的接口获取数据
一般来说跨域有三种方法
- JSONP
- CORS
- 降域
- postMessage
这里主要着重介绍一下CORS是如何实现跨域的。
CORS全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式。CORS的原理是当使用XMLHttpRequest 发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin; 浏览器判断该相应头中是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。
例如A网站想要通过ajax向B网站发送ajax请求获取B网站接口的数据,因为同源策略,未经B网站允许A网站无法获取接口的数据。但是A网站和B网站协商之后,同意获取端口数据,B网站的后端就会加上允许A网站访问,此时A网站在发送请求时就会加一个请求头,当B网站收到后会处理相应,返回数据。
在js 的代码中,需要额外加上一句代码设定请求头
code.png
网友评论