CORS 是一个 W3C 标准,全称跨域资源共享 (Cross-orign resource sharing)
其允许浏览器向跨域服务器发起异步请求,从而客服 ajax 受同源策略的限制
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
使用
- http-equiv 相当于 http 的响应头,其回应给浏览器一些有用的信息,用来帮助正确和精确的显示网页内容
- 以下规则表示允许任意域名下的网页跨域访问
<meta http-equiv="Access-Control-Allow-Origin" content="*">
规则[1-8 为服务器提供,9-10 为浏览器 OPTIONS 请求默认自带]
- Access-Control-Allow-Origin
- 指定允许哪些源的网页发送请求
- Access-Control-Allow-Credentials
- 指定是否允许发送 cookie
- Access-Control-Allow-Methods
- 指定允许哪些请求方法
- Access-Control-Allow-Headers
- 指定允许哪些常规的头域字段,比如 Content-Type
- 常规头域字段有 Cache-Control 、Content-Language 、Content-Type 、Expires 、Last-Modified 、Pragma
- Access-Control-Expose-Headers
- 指定允许哪些额外的头域字段,比如 X-Custom-Header
- 该字段只有需要获取基本字段以外的其他字段时,才需要使用
- Access-Control-Max-Age
- 指定 preflight OPTIONS 请求的有效期,单位秒
- Access-Control-Request-Method
- 告知服务器,浏览器将发送哪种请求,例如 POST
- Access-Control-Request-Headers
- 告知服务器,浏览器将包含哪些额外的头域字段
类型
- 简单请求,满足以下两个条件
- 请求时如下三种之一
- HEAD
- GET
- POST
- http 头域不超过一下几种字段
- Accept
- Accept-Language
- Content-Language
- Last-Event-ID
- Content-Type 且内容限定为
application/x-www-form-urlencodedplain
multipart/form-data
text/plain
- 请求时如下三种之一
- 非简单请求
- 不满足简单请求的两个条件,即为非简单请求