0. 前言
面试文章的规矩想必也知道了,不赘述。
1. 定义
- 同源:两个URL的
protocol、port及host都相同即为同源。
受到同源约束的交互有:
- 跨域写操作(可)
- 跨域资源嵌入(可)
- 跨域读操作(不可)
2. CORS原理
由一系列传输的HTTP头组成,可以发送任何类型的请求。
分为简单请求和非简单请求。
简单请求三大法:
HEADGETPOST
流程:浏览器直接发CORS请求,在头信息中加一个Origin字段即可。
非简单请求是除上面三大法以外其他的方法。请求两次:一次是Request Method: OPTIONS,另一次是请求所需内容。
3. JSONP的原理及优缺点
原理:利用<script>没有跨域限制的漏洞来达成与非同源交互的目的。<img>与<link>标签也可以用于跨域。
缺点:
- 只支持
GET请求; - 没有错误处理;
- 不支持
async:false同步; - 容易被攻击。
背诵版:只get而不能改错,不现代且易被攻。