angular - 如何访问拦截器内部的错误响应主体?

标签 angular rxjs angular-httpclient angular-http-interceptors

我使用拦截器来嗅探所有 HTTP 请求/响应。

当服务器返回 http 400、Angular 引发异常并且在 catch block 中我无法获取正文消息时,如何获取正文响应:

return next.handle(request).pipe(
   catchError((error: HttpErrorResponse) => {
          console.log(error.body); // There is not body object here
});

最佳答案

这是一个如何在拦截器的帮助下完成此操作的示例

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).pipe(
      catchError(error => this.handleError(error))
    );
  }

  private handleError(error: HttpErrorResponse): Observable<any> {
     if (error.status === 400) {
      // Do your thing here      
   }         
  }

希望对你有帮助。

关于angular - 如何访问拦截器内部的错误响应主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56040946/

相关文章:

angular - 使用 HttpClient 向本地 json 文件发送请求

javascript - 处理 ES6 类中的上下文

Angular 6 使用 POST 重定向到外部 url

javascript - 无法在 Angular 7 HTTP 拦截器中捕获 401 状态代码

javascript - RXJS 的 6 个疑惑 Chaining observables

angular - Rxjs Subject.asObservable() 不工作但 BehaviorSubject 工作......为什么?

javascript - 类型 'subscribe' 上不存在属性 'Promise'

angular - 使用 Angular HTTP Observable 的轮询 API

应用程序组件中的 Angular2 : How to access index. html 查询字符串

angular - NG2 : How can I access parent component generically?