CORS: Cross-Origin Resource Sharing
CORS 是一套机制,用于浏览器校验跨域请求
它的基本理念是:
只要服务器明确表示允许,则校验通过
服务器明确拒绝或者没有表示,则校验不通过
使用CORS的前提是:
必须确定服务器是“自己人”
CORS将请求分为两类:
- 简单请求
- 预检请求
简单请求
满足以下3个条件的可以认定是简单请求:
-
请求方法为:
GET、POST、HEAD -
头部字段满足CORS安全规范
-
请求头的Content-Type为:
- text/plain
- multipart/form-data
- application/x-www-form-urlencoded
浏览器会在请求头中设置 Oringin: xxx.com:8080
服务器会在响应头中设置字段:
- Access-Control-Allow-Origin: xxx.com:8080 或者
- Access-Control-Allow-Origin: *
预检请求
- 发送预检请求(请求方法为
OPTIONS)
预检请求的请求头大概包括以下内容:
- OPTIONS /api/xxx HTTP/1.1
- Origin: xxx.com:8080
- Access-Control-Request-Method: POST
- Access-Control-Request-Header: a, b, content-type
服务器返回响应头中包括以下内容:
- Access-Control-Allow-Origin: xxx.com:8080
- Access-Control-Allow-Method: POST
- Access-Control-Allow-Header: a, b, content-type
- Access-Control-Max-Age: 86400
- 发送真实请求
和简单请求一致