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

如何配置React以接收后端返回的自定义Authorization响应头?

为什么前端无法获取后端返回的Authorization响应头?怎么解决?

核心原因

浏览器的同源策略(CORS)存在限制:默认只有简单响应头(如Cache-Control、Content-Type等)会自动暴露给前端JS。像Authorization这类非简单/自定义响应头,后端必须显式配置Access-Control-Expose-Headers允许暴露,否则浏览器会直接隐藏该头,前端JS完全无法读取。而Postman不受同源策略约束,所以能正常看到所有响应头。

解决方案

1. 后端Spring配置CORS时显式暴露Authorization头

根据你使用的配置方式,选择以下一种:

方式一:局部接口配置(@CrossOrigin注解)

在需要返回Authorization头的Controller类或方法上添加:

@CrossOrigin(exposedHeaders = "Authorization")

方式二:全局CORS配置(推荐,覆盖所有接口)

创建Spring Boot全局CORS配置类:

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:3000") // 替换为你的前端实际地址
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                .allowedHeaders("*")
                .exposedHeaders("Authorization") // 关键:指定要暴露的响应头
                .allowCredentials(true);
    }
}

如果集成了Spring Security,需在Security配置中启用CORS:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors() // 启用CORS,使用上述全局配置
            .and()
            .authorizeRequests()
            // 其他权限配置...
            .and()
            .csrf().disable();
    }
}

2. 前端Axios读取响应头的正确方式

后端配置生效后,前端可直接从Axios响应的headers中读取,但注意Axios会将响应头键名转为小写:

// 示例:ApiService.js中的登录请求
async login(credentials) {
  const response = await axios.post('/api/login', credentials);
  // 读取小写的authorization头
  const token = response.headers.authorization;
  localStorage.setItem('token', token);
  return response.data;
}

排查验证点

  • 打开浏览器Network面板,查看对应请求的Response Headers,确认存在Access-Control-Expose-Headers: Authorization,这是后端配置生效的标志。
  • 不要尝试在Axios拦截器中手动添加该头——后端未暴露的话,浏览器不会将其传递给JS,拦截器里只能拿到空值。
  • 确保后端allowedOrigins配置的地址与前端完全一致(比如本地开发时要写全http://localhost:3000,不能省略协议或端口)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 14:15:55