Angular HttpClient 设置请求头后为什么没生效?

慕容奕同 阅读 32

在Angular项目里用HttpClient发送POST请求时设置了Authorization头,但后端一直返回401。检查代码没问题,重启服务也没用,是不是哪里漏掉了配置?求大神指点!

代码这样写的:


this.http.post('/api/data', body, {
  headers: new HttpHeaders({
    'Authorization': 'Bearer ' + token
  })
})

同时在拦截器里也尝试过添加,但抓包发现请求头确实没带上…

我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
小玉灿
小玉灿 Lv1
检查一下是不是在拦截器里不小心覆盖了headers,或者后端接口要求的是小写的'authorization'。另外Angular默认会对OPTIONS请求不带自定义header,看看是不是预检请求的问题。

试试这样写保险点:
this.http.post('/api/data', body, {
headers: new HttpHeaders({
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json'
}).set('Authorization', 'Bearer ' + token)
})


如果还不行,可能是后端CORS配置问题,让后端加上对Authorization头的支持。
点赞 2
2026-02-17 09:13