Reputation: 138
Here is a code in Angular 11, RxJs 6
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(this.setAuthHeader(request)).pipe(
catchError(err => {
if (err instanceof HttpErrorResponse) {
switch ((err as unknown as HttpErrorResponse)?.status) {
case 401:
localStorage.removeItem('loggedIn');
this.shared.logger.next('Authorization Failed');
return this.handle401Error(request, next);
default:
return throwError(err);
}
} else {
return throwError(err);
}
})
);
}
Seems like a very simple approach. But I keep getting error
What am I doing wrong here ?
Upvotes: 0
Views: 182
Reputation: 9673
change catchError
parameter as follows
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(this.setAuthHeader(request))
.pipe(filter(e => (e instanceof HttpResponse)),
catchError((error: HttpErrorResponse) => {
....
Upvotes: 1