angular - 从 Angular 中的 HttpClient 发布请求获取响应 header ?

标签 angular http-headers httpresponse angular-http angular-httpclient

我正在尝试从发布请求中获取响应 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/

相关文章:

c# - 将 ASP.NET Core 2.1 和 Angular 6 项目发布到 Azure

node.js - 删除 express 中的 Etag header

java - 如何为我的模拟实例化 unirest HttpResponse<JsonNode> ?

angular - 无论使用 ActivatedRoute 的路由嵌套级别如何,都在 Angular2 路由上检索数据属性

angularjs - 如何避免添加前缀 “unsafe” 到 Angular-2 链接?

angular - 如何将 Angular Material 扩展面板箭头图标定位在左侧

http - http header 中是否允许多个线性空白

java - Spring RestTemplate 在点击 API 后抛出 403 Forbidden

asp.net-mvc - 如何使操作过滤器导致过滤后的操作返回 HttpNotFoundResult?

Java输出流,在从数据库检索所有数据之前触发文件下载