У меня проблема, внедрите в свое приложение Ionic 3 (angular 5) перехватчик для аутентификации apis, который я потребляю. Я навязываю ошибку, добавляя еще одну строку в Bearer, что является недопустимым и может перехватить ошибки, однако, в первом случае это работает, более во втором вызове это не попадает в ошибку (однако API отвечает ошибка 403)
addAuthHeader(request) {
return request.clone({
setHeaders: {
"Authorization": 'Bearer ' + _.get(this.localStorageService.getAccessToken(), 'accessToken', '')
}
});
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
//console.log(_.get(req, 'url', ''));
console.log(req);
return next.handle(req).pipe(catchError(err => {
if (err instanceof HttpErrorResponse) {
let statusError = _.get(err, 'status', 0);
console.log(err);
if (statusError == 401 || statusError == 403) {
return this.authProvider.loginPartnerToken()
.switchMap(() => {
//console.log(req);
req = this.addAuthHeader(req);
//console.log(req);
return next.handle(req);
});
}
}
}))
}
Я результаты:
![enter image description here](https://i.stack.imgur.com/WYyq9.png)
Как видите, первый вызов завершается неудачно, и ошибка - HttpErrorResponse
, в то время как во втором она также не срабатывает, но ошибка проста HttpRequest