如何从Angular的服务器中禁用错误 http

问题描述 投票:0回答:1

[我有一个问题,在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);
    }
  }

获取http:// localhost:3000 / api / toto 401(未经授权)-此行

错误验证失败!*

angular http throw
1个回答
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); }

© www.soinside.com 2019 - 2024. All rights reserved.