什么情况下会发起预检请求
预检请求是一个OPTIONS方法的HTTP请求,它会被浏览器自动发送到服务器,用来确认实际的跨域请求是否被服务器允许。服务器通过响应中的Access-Control-Allow-Methods、Access-Control-Allow-Headers等CORS(跨源资源共享)相关头部信息来表明哪些请求方法和头信息是被允许的。只有当预检请求成功返回,并且服务器明确许可了后续的实际请求,浏览器才会继续发送实际的HTTP请求。
- 非简单请求方法:当HTTP请求的方法是除GET、HEAD或POST之外的方法时,如PUT、DELETE等。
- 自定义请求头:请求中包含自定义的HTTP头信息,或者某些特殊的头信息(如
Content-Type不是application/x-www-form-urlencoded、multipart/form-data或text/plain)。自定义请求头如:Authorization - 发送的请求数据是不可序列化的数据类型,比如
Blob、File等。