【问题标题】:How disable an error http from server in Angular如何在 Angular 中禁用来自服务器的错误 http
【发布时间】:2020-02-03 11:30:19
【问题描述】:

我有一个问题,在 Angular 8 中如何隐藏 http 方法服务器链接的行

auth-interceptor.ts

  private handleAuthError(err: HttpErrorResponse): Observable<any> {
    let errorMsg;
    if (err.status === 401 || err.status === 403) {
      errorMsg = err.error.message;
      this.injector.get(Router).navigateByUrl(`/login`);
    }
    return throwError(errorMsg);
  }

  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const token = localStorage.getItem("id_token");
    if (token) {
      const authReq = req.clone({ headers: req.headers.set("Authorization", "Bearer " + token) });
      return next.handle(authReq).pipe(catchError(err => this.handleAuthError(err)));
    }
    else {
      return next.handle(req);
    }
  }

GET http://localhost:3000/api/toto 401(未授权)——这一行

ERROR 验证失败!*

【问题讨论】:

    标签: angular http throw


    【解决方案1】:

    我认为您应该使用 try catch 块并且不要将服务器错误抛给最终用户。

    通过这种做法,您可以以任何您想要的方式警告用户。

    如果您不想写错误消息,请使用:

    private handleAuthError(err: HttpErrorResponse): Observable<any> {
      let errorMsg;
      if (err.status === 401 || err.status === 403) {
        errorMsg = err.error.message;
        this.injector.get(Router).navigateByUrl(`/login`);
      }
      errorMsg.replace(Url, '');
      return throwError(errorMsg);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      相关资源
      最近更新 更多