I would like to intercept 401 and other errors in order to react accordingly. This is my interceptor:
import { LoggingService } from './../logging/logging.service';
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent, HttpResponse, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/do';
@Injectable()
export class TwsHttpInterceptor implements HttpInterceptor {
constructor(private logger: LoggingService) { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.logger.logDebug(request);
return next.handle(request)
.do(event => {
if (event instanceof HttpResponse) {
this.logger.logDebug(event);
}
});
}
}
While this works well for 200 requests, it does not intercept the error respsonses
All I see in chrome's dev console is this:
zone.js:2616 GET http://localhost:8080/backend/rest/wrongurl 404 (Not
Found)
Or this
zone.js:2616 GET http://localhost:8080/backend/rest/url 401
(Unauthorized)
I would like my interceptor to deal with this. What am I missing ?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…