Я работаю над Angular 8
Я пытаюсь централизовать обработку ошибок через Interceptor
Мой код перехватчика работает, но не возвращает ошибку
import {
HttpEvent,
HttpInterceptor,
HttpHandler,
HttpRequest,
HttpResponse,
HttpErrorResponse
} from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { retry, catchError } from 'rxjs/operators';
import { RestService } from './restservice';
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
@Injectable()
export class HttpErrorInterceptor implements HttpInterceptor {
constructor(private rest : RestService , private route : Router){}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// console.log('jcsjdsjd');
// console.error('xjxfjb');
// console.log(request);
// console.log(next);
return next.handle(request).pipe(catchError(err => {
console.log(err);
if (err.status === 401) {
// auto logout if 401 response returned from api
// this.authenticationService.logout();
location.reload(true);
}
const error = err.error.message || err.statusText;
return throwError(error);
}))
}
}
Я также определил перехватчик в поставщиках app.module.ts
providers: [RestService , AuthGuard , commonRest , {
provide: HTTP_INTERCEPTORS,
useClass: HttpErrorInterceptor,
multi: true
}],
, который я получаю по запросу с ошибкой 403:
{
"messagecode": 403,
"message": "not valid token!"
}