我在Angular 5中编写了一个身份验证服务,它使用HttpClient类向我的后端发出POST请求。后端通过发送JWT承载令牌进行响应。
我的请求如下:
return this.http.post('http://127.0.0.1:8080/api/v1/login', {
'username': username,
'password': password
}, {
headers: new HttpHeaders()
.set('Content-Type', 'application/json')
})
.toPromise()
.then(response => {
console.log(response);
return response;
});
}
如何访问响应的授权标头?
当我将响应写入控制台时,如上所述,它会显示“null”。我知道错误不在后端,因为我捕获了流量,后端确实发送了承载令牌。
非常感谢任何帮助。
答案 0 :(得分:13)
要访问完整响应(不仅仅是响应正文),您必须在http请求中传递observe: 'response'
参数选项。现在,您可以使用res.headers
return this.http.post('http://127.0.0.1:8080/api/v1/login', {
'username': username,
'password': password
}, {
headers: new HttpHeaders()
.set('Content-Type', 'application/json'),
observe: 'response'
})
.map(res => {
let myHeader = res.headers.get('my-header');
});