目录
背景:
http请求是有一个同源策略的限制,解决跨源请求的问题,就有了CORS,CORS是一个W3C标准,称为“跨域资源共享”。
CORS请求又分为两类:简单请求和复杂请求。
简单请求的定义:
- method请求方式 HEAD、GET、POST 其中之一
- HTTP的头信息不超出以下几种字段
- Accept
- Accept-Language
- Content-Language
- Last-Event-ID
- Content-Type:application/x-www-form-urlencoded、multipart/form-data、text/plain 其中之一
复杂请求的定义:
跨域作为前提,并且不满足简单请求的任意一项,即为复杂请求。
复杂请求就会有options请求,称为“预检”请求
情况如下:
- Headers中携带自定义字段、如:token
- Method请求方式PUT或者DELETE
-
Content-Type:application/json
项目中解决options请求的方式
-
解决跨域的问题:使用反向代理。
- 解决复杂请求:统一使用简单请求的方式,即使是跨域,也不会options请求,方案是项目中Content-Type:application/json改为application/x-www-form-urlencoded,并将post请求的参数使用qs插件转成json格式,可保障后端接口能接收到参数。