我正在尝试从发布请求中获取响应 header ,但 HttpResponse 对象不包含我在网络中看到的相同 header 。我究竟做错了什么?我需要访问 Apiproxy-Session-Id key 的值,但它不存在于 HttpHeaders 中。
这是我执行发布请求并记录完整响应的代码,其中 http 是一个 HttpClient 对象。
this.http.post('http://localhost:8081/user/login',
JSON.stringify(requestBody), {observe: 'response'}).subscribe(resp => {
控制台日志(响应);
});
This is the response I'm logging.
These are the headers I'm seeing in the network.
我是 Angular 的新手,对此非常困惑。谢谢你的帮助!
最佳答案
嘿伙计,我在这里遇到了同样的问题。由于您的后端和前端位于不同的域中,因此默认情况下不会公开某些响应 header 。
您可以尝试两种不同的方法:
<强>1。在 Angular 上代理您的请求
代理将使您的后端认为请求来自 sabe 域。参见 this doc知道怎么做。请记住,使用此选项时,所有 header 都将被公开。
<强>2。在后端服务器上公开您想要的 header
因为我不知道你后端的语言,所以我不能告诉你一步一步这样做,但我必须在响应中做这样的事情:response.add("Access-Control-Expose-Headers", "Apiproxy-Session-Id")
.
关于angular - 从 Angular 中的 HttpClient 发布请求获取响应 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45739970/