繁体   English   中英

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

[英]Angular httpClient get headers if an error occurred

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

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

收到响应后,只需阅读它-希望对您有所帮助-编码愉快:)

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

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

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

            }
          );

希望这个能对您有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM