如果发生错误,Angular httpClient获取标头

时间:2018-11-14 08:02:09

标签: angular angular-httpclient

我尝试了以下代码,但是headers属性未定义。如果http响应状态不是2xx,还有另一种访问http标头的方法吗?

this._httpClient.get(url)

      .subscribe(
        (res: any) => {
          //sth
        },
        error => {
          this._logger.error(..., error.headers.get('Some-important-header'));

        }
      );

2 个答案:

答案 0 :(得分:0)

尝试类似的方法

this._httpClient.get(url).pipe(tap(event  => {
   if(event instanceof HttpResponse){
      console.log(event.headers);
   }
}), catchError(this.handleError));

处理错误

private handleError(error: HttpErrorResponse) {
    if (error instanceof HttpErrorResponse) {
      console.log(error.headers);
    } 
  };

在收到回复时只需阅读一下-希望对您有所帮助-编码愉快:)

答案 1 :(得分:0)

响应主体不会返回您可能需要的所有数据。有时,服务器会返回特殊的标头或状态代码,以指示对于应用程序工作流程很重要的某些条件。

通过观察选项告诉HttpClient您想要完整的响应:

$carbon: 'Carbon/Carbon'

希望这对您有帮助!