【问题标题】:Angular HttpModule - hide browser's console error messages for status != 200Angular HttpModule - 隐藏浏览器的控制台错误消息状态!= 200
【发布时间】:2018-12-12 13:56:34
【问题描述】:

如何在我的 Angular 前端正确处理请求?在我的 node.js API 中,如果找不到请求的资源,我总是发送状态 404。但是发送这个,会导致控制台中出现一条错误消息,如下图所示。

我应该怎么做才能在浏览器控制台中隐藏这条消息?

我认为一个可能的解决方案是为所有请求发送状态 200,但为请求的资源提供自定义错误消息和空数组。有人可以在这里给我指点一下吗?

Obs:我目前正在处理这样的错误:

service.ts

  return this.http.get(url, options).pipe(
    catchError(this.handleError),
    map(response => {
      return response['data'] || [];
    })
  )

  private handleError(error: HttpErrorResponse) {
    // return an observable with a user-facing error message
    return throwError('Something bad happened; please try again later.');
  };

【问题讨论】:

    标签: angular angular-httpclient


    【解决方案1】:

    你需要捕获错误,然后你可以对错误做一些事情:

    return this.http.get(url, options).pipe(
        catchError(this.handleError),
        map(response => {
          return response['data'] || [];
        })
        .catch((e: any) => console.log(e));
      )
    

    【讨论】:

    • 导入 'rxjs/add/operator/catch'?
    【解决方案2】:
    flatMap((error: HttpErrorResponse) => {
       if (error.status != 200) {
         return throwError(error)
       } else {
         return new Observable<void>(observer => observer.complete());
       }
    })
    

    【讨论】:

      猜你喜欢
      • 2019-09-12
      • 1970-01-01
      • 2019-03-19
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多