Как отключить ошибку http с сервера в Angular - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть вопрос о том, в 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 (Unauthorized) - эта строка

Ошибка проверки подлинности! *

1 Ответ

1 голос
/ 03 февраля 2020

Я думаю, что вы должны использовать команду 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);
}
...