预检请求

CORS 预检请求用于检查服务器是否支持 CORS 协议,并且是否允许使用特定的方法和标头。

浏览器会自动发送 OPTIONS 预检请求,主要在以下情况下:

  • 使用了非简单请求(即非 GETPOST(仅限 application/x-www-form-urlencodedmultipart/form-datatext/plain)、HEAD)。

  • 设置了自定义请求头(如 AuthorizationContent-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/
作者
fullsize
发布于
2025年3月27日
许可协议