我试图拦截 http 响应并重定向任何 401,但下面的 err 对象只返回以下字符串。我期待至少找到状态代码..
401 - 未经授权的详细信息:Http 失败响应http://localhost:4200/api/foo http://localhost:4200/api/foo:401 未经授权
我可以在网络选项卡中看到服务器返回格式正确的 401。关于如何正确阅读它们有什么想法吗?
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const authRequest = request.clone({
setHeaders: {
Authorization: `Bearer ${this.authService.getToken() || ''}`
}
});
return next.handle(authRequest).do(event => { }, err => {
if (err instanceof HttpErrorResponse && err.status === 401) {
this.authService.handleAuthentication();
}
});
}
编辑:我刚刚注意到,如果我关闭 Web 服务器以强制 504 网关超时,我会得到一个完整字符串的错误,也没有错误代码。
504 - 网关超时详细信息:Http 失败响应http://localhost:4200/api/foo http://localhost:4200/api/foo: 504网关超时
好吧,这里的问题是我有一个预先存在的错误拦截器,它在我的 401 拦截器之前修改响应。这家伙把一切都串起来了。感谢以上所有回复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)