引言
目前常用的Ajax跨域问题解决方式有三种
- Jsonp方式,需要前端和后端同时处理
- nginx(或者其它HTTP服务器)配置
- 后端设置CORS允许跨域
本文着重讲后端设置跨域,案例基于SpringBoot,其它框架原理相同
(一) CORS跨域
CORS是一个W3C标准,全称是"跨域资源共享",CORS有两种请求,简单请求和非简单请求。
(1) 只要同时满足以下两大条件,就属于简单请求。
- 请求方法是以下三种方法之一:
- HEAD
- GET
- POST
- HTTP的头信息不超出以下几种字段
- Accept
- Accept-Language
- Content-Language
- Lase-Event-ID
- Content-Type: 只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain
(2) 对于非简单请求,会发出一次预检测请求,返回码是204,预检测通过后,才会真正发出请求。