从 Angular 中的 HttpClient post 请求获取响应 headers?

Getting response headers from HttpClient post request in Angular?

我正在尝试从 post 请求中获取响应 headers,但是 HttpResponse object 不包含我可以看到的 headers在网络中。我究竟做错了什么?我需要访问 Apiproxy-Session-Id 键的值,但它不存在于 HttpHeaders 中。

这是我执行 post 请求并记录完整响应的代码,其中 http 是一个 HttpClient object.

this.http.post('http://localhost:8081/user/login', JSON.stringify(requestBody), {observe: 'response'}).subscribe(resp => { console.log(resp); });

This is the response I'm logging.

These are the headers I'm seeing in the network.

我是 Angular 的新手,对此非常困惑。谢谢你的帮助!

尝试添加responseType: 'text'

this.http.post('http://localhost:8081/user/login', 
    JSON.stringify(requestBody), {observe: 'response', responseType: 'text'}).subscribe(resp => {
        console.log(resp);
    });

嘿伙计,我在这里遇到了同样的问题。由于您的后端和前端位于不同的域中,因此某些 headers 响应在默认情况下不会公开。

您可以尝试两种不同的方法:

1.在 Angular

上代理您的请求

有了这个代理将使您的后端认为请求来自 sabe 域。请参阅 this doc 了解如何操作。请记住,使用此选项 所有 headers 都将被公开。

2。在你的后端服务器

上公开你想要的headers

因为我不知道你后端的语言我不能告诉你一步一步这样做,但我必须做这样的事情关于回应:response.add("Access-Control-Expose-Headers", "Apiproxy-Session-Id").