Angular httpClient get headers 如果发生错误

Angular httpClient get headers if an error occurred

我试过下面的代码,但是 headers 属性没有定义。如果 http 响应状态不是 2xx,还有其他访问 http header 的方法吗?

this._httpClient.get(url)

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

        }
      );

尝试这样的事情

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);
    } 
  };

收到回复后请阅读 - 希望这对您有所帮助 - 祝您编码愉快:)

响应 body 没有 return 您可能需要的所有数据。有时服务器 return 特殊 headers 或状态代码指示对应用程序工作流很重要的某些条件。

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

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

            }
          );

希望对您有所帮助!