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

Axios调用API Gateway返回401,Postman却成功?求排查方案

解决Axios请求API Gateway出现CORS+401的问题

你的问题核心是浏览器的同源策略限制,Postman作为客户端工具不受这个规则约束,所以能正常请求。结合报错信息,主要是两个点需要排查:

1. 修复API Gateway的CORS配置

带Authorization这类自定义请求头的跨域请求,浏览器会先发送OPTIONS预检请求,API Gateway必须正确响应这个请求,否则浏览器会拦截后续的GET请求。你需要在API Gateway里做这些配置:

  • 确保Access-Control-Allow-Origin设置为你的前端域名(或者*,但生产环境不建议用通配符)
  • 配置Access-Control-Allow-Headers,必须包含Authorization、Accept这两个你用到的头
  • 确认Access-Control-Allow-Methods包含GET和OPTIONS

另外,关键一点:OPTIONS预检请求不能要求授权。如果你的API Gateway配置了授权器(比如IAM、自定义Lambda授权),要给OPTIONS方法单独设置「无需授权」,否则OPTIONS请求会返回401,直接导致跨域失败。

2. 确认Axios请求的细节

  • 检查MYAPI变量是否是完整的正确URL,比如是否包含协议、路径,和Postman里用的一致
  • 验证Authorization头的格式:确保user.value没有多余空格,最终头内容是Bearer 你的令牌(Bearer和令牌之间有一个空格),可以在浏览器开发者工具的「网络」面板里查看实际发送的请求头是否正确

临时调试方案(仅开发环境)

如果是本地开发阶段,可以用浏览器的CORS插件(比如CORS Everywhere)临时绕过同源限制,但这只是临时手段,生产环境必须靠服务端配置解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:57:02