我正在使用angular2-http(alpha.44)模块从REST Api检索数据.我无法弄清楚如何访问响应的标题映射中的信息,我需要一个特定的字段.例:
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 => { ... },
_ => {}
);
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我在浏览器的开发工具中检查网络流量,则会出现响应头...
小智 6
该解决方案已在已经链接的问题中,但在稍后的评论中: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文件中执行此设置.
小智 4
github 上已经有一个关于该问题的问题:-
https://github.com/angular/angular/issues/5237#issuecomment-156059284
请检查一下,因为有人发布了解决方法。
更新
Angular团队已经解决了这个问题。
| 归档时间: |
|
| 查看次数: |
12422 次 |
| 最近记录: |