如何在Angular 5中使用HttpClient访问响应头?

时间:2017-12-11 13:19:57

标签: javascript angular typescript

我在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”。我知道错误不在后端,因为我捕获了流量,后端确实发送了承载令牌。

非常感谢任何帮助。

1 个答案:

答案 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');
    });

Docs