You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已设置Access-Control-Allow-Origin:*,Axios Post仍遭CORS拦截

可能的CORS问题原因分析
  • 预检请求未被正确处理:当你的POST请求携带application/json这类非简单Content-Type时,浏览器会先发送OPTIONS预检请求。如果后端没有针对OPTIONS请求返回正确的CORS头(比如Access-Control-Allow-Origin、Access-Control-Allow-Methods等),哪怕后续POST验证通过后返回了正确头,也会直接触发CORS错误。
  • 验证失败分支未返回CORS头:你提到仅在验证通过后返回Access-Control-Allow-Origin:*,如果用户名/密码错误时后端没有返回该头,浏览器同样会判定为CORS违规。
  • 凭证模式与通配源头冲突:如果Axios请求开启了withCredentials: true(默认可能因某些场景自动开启),Access-Control-Allow-Origin:*和凭证模式是不兼容的——CORS规范明确要求带凭证的请求必须指定具体源,不能用*。
  • 浏览器缓存了旧响应:之前错误的CORS响应可能被浏览器缓存,即使后端现在配置正确,浏览器仍会用缓存的结果判定违规。可以尝试清除浏览器缓存,或在请求中添加Cache-Control: no-cache头。
  • 代理服务器拦截了CORS头:如果后端前有Nginx、Apache等反向代理,可能代理层修改或过滤了CORS响应头,导致前端实际收到的头和后端配置不一致。需要检查代理配置,确保它没有移除或覆盖Access-Control-Allow-Origin等相关头。
  • 缺少Access-Control-Allow-Headers配置:当请求携带自定义头或非简单Content-Type时,后端需要在预检响应中返回Access-Control-Allow-Headers,指定允许的请求头(比如Content-Type),否则预检请求会失败。

内容的提问来源于stack exchange,提问作者CHEESE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 12:12:02