【发布时间】:2022-04-15 17:14:07
【问题描述】:
我正在使用 Angular 7,并且在我的应用程序中使用了 HTTP 拦截器。
我无法在该 HTTP 拦截器中跟踪 401 状态代码。
我尝试对catchError 和tap 进站,但它给出的状态为 0,我想要 401。
我的代码在这里:
return next.handle(request).pipe(tap(event => {
console.log('the ev is :', event);
if (event instanceof HttpResponse) {
this.onEnd();
}
}, err => {
if (err instanceof HttpErrorResponse) {
console.log('the eeeeeee is :', err);
this.onEnd();
// User logged out
if (err.status === 401) {
this.router.navigate(['logout']);
}
}
})).pipe(catchError(error => {
console.log('the ee is :', error);
return Observable.throw(error);
}));
谢谢。
【问题讨论】:
-
我不太确定当出现错误时
tap是否被命中。谷歌为它。 -
我遇到了这个问题,原因只是在开发模式下我得到状态 0,而在服务中我得到 401,而在拦截器中我得到 0。当我在服务器上部署应用程序时。一切正常,我得到了正确的状态,代码或配置没有任何变化。我不知道为什么,但它只发生在开发模式下。
-
@FarhatZaman,即使在服务器上部署应用程序后,仍然存在相同的问题。
标签: javascript angular http