1、什么是preflight请求?
一个 CORS 预检请求是用于检查服务器是否支持 CORS 即跨域资源共享。
2、什么时候会发送preflight请求?
总结:跨域请求中的非简单请求都会进行发送preflight请求
对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 GET 以外的 HTTP 请求,或者搭配某些 MIME 类型的 POST 请求),浏览器必须首先使用 OPTIONS 方法发起一个预检请求
3、preflight请求的作用?
检查服务器是否支持 CORS 即跨域资源共享。
案例
leetcode官网发送的某一个预检请求
请求标头
Access-Control-Request-Method: POST
Origin: leetcode.cn
Access-Control-Request-Headers: x-timezone
告诉服务端真是请求的请求来源、请求方式、特殊的请求头。
响应标头
Access-Control-Allow-Headers: Origin,Content-Length,Content-Type,X-Csrftoken,X-Timezone
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE,UPDATE
Access-Control-Allow-Origin: leetcode.cn
Access-Control-Max-Age: 43200 (单位为秒,默认5)
告诉客户端允许的请求地址、请求方式、请求头、该预检请求可供缓存的时间 缓存的时间内无需再次发送预检请求