天天看点

CROS 跨域请求原理

cros 分为两种请求

简单请求

浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(预检请求)(not-so-simple request)。

只要同时满足以下两大条件,就属于简单请求。

(1) 请求方法是以下三种方法之一:
 
HEAD
GET
POST
 
(2)HTTP请求头信息不超出以下几种字段:
 
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain      

凡是不同时满足上面两个条件,就属于非简单请求。

浏览器对这两种请求的处理,是不一样的。

Access-Control-Allow-Origin: http://kbiao.me

Access-Control-Max-Age: 3628800

Access-Control-Allow-methods: GET, PUT, DELETE, POST

Access-Control-Allow-Header: content-type

Access-Control-Allow-Credentail: true

“Access-Control-Allow-Origin"表明它允许” http://kbiao.me "发起跨域请求

"Access-Control-Max-Age"表明在3628800秒内,不需要再发送预检验请求,可以缓存该结果(上面的资料上我们知道CROS协议中,一个AJAX请求被分成了第一步的OPTION预检测请求和正式请求)

"Access-Control-Allow-Methods"表明它允许GET、PUT、DELETE的外域请求