这是我的service
executeProcess(): Observable<any> {
return this._httpClient.post(this.baseUrl + '/api/survey/process/execute', {}, { observe: 'response', responseType: 'text' as 'text' });
}
在我的组件中,我这样称呼它
this._httpService.executeProcess().subscribe(res => {
console.log(res);
}
这是我的res.headers
{
"normalizedNames": {},
"lazyUpdate": null,
"headers": {}
}
具有一个为空的标头对象。在此api的后端,我将发送一个名为location
的标头,该标头显示在Chrome的“网络”标签中。一切都通过chrome的网络标签运行,但是从角度来看,我无法检索此标头。
答案 0 :(得分:0)
您是否尝试过阅读完整的回复?
HttpClient reading the full response
showConfigResponse() {
this.configService.getConfigResponse()
// resp is of type `HttpResponse<Config>`
.subscribe(resp => {
// display its headers
const keys = resp.headers.keys();
this.headers = keys.map(key =>
`${key}: ${resp.headers.get(key)}`);
// access the body directly, which is typed as `Config`.
this.config = { ... resp.body };
});
}
编辑:
还尝试在后端使用Access-Control-Expose-Headers
公开 location 标头。请参阅此链接以供参考:
Using CORS
Access-Control-Expose-Headers(可选)-XMLHttpRequest 2对象具有getResponseHeader()方法,该方法返回特定响应头的值。在CORS请求期间,getResponseHeader()方法只能访问简单的响应头。简单的响应头定义如下:
Cache-Control
Content-Language
Content-Type
Expires
Last-Modified
Pragma
如果希望客户端能够访问其他标头,则必须使用Access-Control-Expose-Headers标头。此标头的值是您要公开给客户端的响应标头的逗号分隔列表。