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

React中axios获取响应头无Authorization但Network面板存在该字段求助

问题根因

  1. withCredentials配置位置错误
    你当前把withCredentials: true写在了headers配置项内,这个参数是axios的顶层请求配置,不属于请求头字段,放在headers里不会生效。如果接口是跨域请求,withCredentials不生效会导致前端无法正确读取跨域返回的自定义响应头。
  2. 跨域场景下后端未配置响应头暴露规则
    默认CORS策略下,前端JavaScript只能读取以下6个基础响应头:
  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma
    Authorization属于自定义响应头,必须由后端在响应头中添加Access-Control-Expose-Headers: Authorization,才能被前端axios读取到,这就是为什么Network面板能看到头字段,但axios的response里拿不到的核心原因。

解决方案

第一步:修正axios请求配置

把withCredentials从headers中移到顶层配置项:

let res = await axios.post(
    `http://xx.xx/api/v1/users/login`,
    {
        id: email,
        password: encryptedPassword,
    },
    {
        // 注意withCredentials是顶层配置,和headers平级
        withCredentials: true,
        headers: {
            Accept: 'application/json',
            'Content-type': 'application/json',
        },
    },
)

第二步:后端添加跨域暴露配置

需要后端接口在响应头中添加如下配置:

Access-Control-Expose-Headers: Authorization

不同后端框架可以直接搜索对应框架的CORS配置方法,把Authorization加入暴露头列表即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 01:06:02