首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 2:无法访问http请求中的响应头

Angular 2:无法访问http请求中的响应头
EN

Stack Overflow用户
提问于 2015-11-12 18:04:33
回答 3查看 13.5K关注 0票数 6

我使用angular2-http(alpha.44)模块从REST Api中检索数据。我不知道如何访问响应的头映射中的信息,我需要一个特定的字段。示例:

代码语言:javascript
复制
var req = new Request({
  url: `localhost/api/products`,
  method: RequestMethods.Get
});

this.http.request(req).subscribe(
  res => {
    // Can't access the headers of the response here.... res.headers is empty
    },
  error => { ... },
  _ => {}
);

奇怪的是,如果我在浏览器的开发工具中检查网络流量,响应头是存在的……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-12 18:38:50

在github上已经有一个关于这个问题的问题了:

https://github.com/angular/angular/issues/5237#issuecomment-156059284

请检查它,因为有人发布了一个解决方法。

更新

angular团队已经解决了这个问题。

票数 4
EN

Stack Overflow用户

发布于 2017-03-25 06:35:38

解决方案在已经链接的问题中,但在后面的评论中:https://github.com/angular/angular/issues/5237#issuecomment-239174349

除了一些通用的标头,只有作为Access-Control-Expose-Headers标头的值列出的标头才会在Angular2中映射(可能也会与其他标头一起映射)。这必须在后端添加。

对我来说,我花了一个多小时才弄清楚Authorization头文件。我以为它不是那个自定义的头文件,但它确实是。

在PHP中调用如下代码:header("Access-Control-Expose-Headers: Authorization, X-Custom-header");

如果您使用Laravel作为barryvdh/laravel-cors的后端,请在config/cors.php文件中进行此设置。

票数 7
EN

Stack Overflow用户

发布于 2017-05-28 16:20:33

我发现这个链接很有帮助:https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Access-Control-Expose-Headers

当我必须指定哪些必要的标头时,我必须通过添加真正的标头从我的服务器本身向最终用户公开。

代码语言:javascript
复制
// Request headers you wish to expose
res.setHeader('Access-Control-Expose-Headers', 'your_desired_header, content-type');

干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33668826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档