【发布时间】:2018-06-19 10:15:54
【问题描述】:
我正在触发一个HTTP 请求,并且我得到了有效的响应。该响应还有一个我希望阅读的标题X-Token。我正在尝试下面的代码来读取标题,但是,结果我得到了 null
this.currentlyExecuting.request = this.http.request(reqParams.type, reqParams.url, {
body: reqParams.body,
responseType: 'json',
observe: 'response'
}).subscribe(
(_response: any) => {
// Also tried _response.headers.init();
const header = _response.headers.get('X-Token');
console.log(header);
onComplete(_response.body);
},
_error => {
onComplete({
code: -1,
message: Constants.WEBSERVICE_INTERNET_NOT_CONNNECTED
});
}
);
API 的响应在 Chrome 检查中检查时显示标头存在。
【问题讨论】:
-
您是否从服务器端公开了 x-token?使用“访问控制公开标头”。因为不是所有的头部都允许从客户端访问,你需要从服务器端公开它们。
-
如果他在控制台中有它,那么是的,他暴露了它。
-
@HrishikeshKale:你是对的。 Access-Control-Expose-Headers 工作。您可以将此作为答案发布。
-
我已将此作为答案发布。快乐编码:)
-
毛毛虫,我不同意。我有一种情况,我在服务器上添加标头并且可以在浏览器控制台中看到它,但浏览器代码看不到它。由于 CORS,我必须明确将其标记为(在我的服务器代码中)暴露给浏览器。
标签: angular http typescript angular5