Как отключить функцию ошибки на статус 401 - PullRequest
0 голосов
/ 04 ноября 2018

Здравствуйте, я пытался использовать перехватчик httprequests 401 (неавторизованный) и 403 (запрещенный), и у меня возникла проблема с отключением функции ошибки при ошибке 401.

Перехватчик:

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http'
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';

@Injectable()
export class ErrorInterceptor implements HttpInterceptor {

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(req).do(event => {}, err => {
            if (err instanceof HttpErrorResponse && err.status == 401) {
                // alert unauthorized & redirect to login.
            }
        });
    }
}

Запрос:

request(data){
    this.httpservice.request(data).subscribe(
      res => alert("success"),
      err => {
          /* doing something very complex that unauthorized
          users should not process to */
      }
    );
}

Таким образом, в данном примере выполняются и код перехватчика (перенаправление), и функция обработки запроса. Я хочу отключить функцию результата err в случае, если с сервера получен результат 401. К сожалению, я не смог найти способ сделать это.

...