浏览器为什么会对同一个接口发起两次请求?一次由 CORS 预检引发的排查
前端本地调试时,经常会在 Network 面板里看到一个接口出现两条记录:一条是 OPTIONS,一条是真正的 GET 或 POST。更奇怪的是,后端日志里 OPTIONS 请求没有被业务代码处理,却仍然返回了 200,而真正请求却报 CORS 错误。这个问题通常不是浏览器 bug,也不是 axios 重复调用,而是触发了 CORS 预检(preflight)。只要请求满足某些条件,浏览器就会先发一个 OPTIONS 请求去问服务器“我能不能发这个实际请求”,服务器允许后才会继续。很多人只给实际接口加了 Access-Control-Allow-Origin,却忽略了 OPTIONS 响应也需...