预检请求
CORS 预检请求用于检查服务器是否支持 CORS 协议,并且是否允许使用特定的方法和标头。
浏览器会自动发送 OPTIONS 预检请求,主要在以下情况下:
使用了非简单请求(即非
GET、POST(仅限application/x-www-form-urlencoded、multipart/form-data、text/plain)、HEAD)。设置了自定义请求头(如
Authorization、Content-Type: application/json)。**跨域请求涉及 credentials(如 ****
withCredentials: true**)。使用了 PUT、DELETE、PATCH 等方法。
服务器正常响应options请求
res.set({
'Access-Control-Allow-Origin': '*', // 允许的来源
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', // 允许的方法
'Access-Control-Allow-Headers': 'Content-Type, Authorization', // 允许的请求头
'Access-Control-Allow-Credentials': 'true' // 允许携带 Cookie
});
总结
浏览器会自动发送
OPTIONS预检请求来检查 CORS 规则。服务器需要正确返回
Access-Control-Allow-Origin等 CORS 头信息。通过使用简单请求、避免自定义头,可以减少
OPTIONS预检请求的触发。
预检请求
https://blog.fullsize.cn/2025/03/27/notion/yu-jian-qing-qiu/