Angular 2 JWT AuthHttp 错误 401 未捕获

Posted

技术标签:

【中文标题】Angular 2 JWT AuthHttp 错误 401 未捕获【英文标题】:Angular 2 JWT AuthHttp error 401 not catched 【发布时间】:2017-06-10 02:32:44 【问题描述】:

我在 Angular 2 中有这个功能,在正常情况下效果很好:

private callGetUserService(url: string, id: string): Observable<any> 
 return this.authHttp.get(url + id)
   .map(res => 
     return this.extractData(res);
   )
   .catch((err) => 
     console.log('Error getting account: ' + JSON.stringify(err));

     return Observable.of(err);
   );
  

当我强制服务器发出 401 响应时,catch(err) 总是返回 err.status = 0 和 err.ok = false。我完全不知所措,有人可以帮忙吗?

【问题讨论】:

任何人,请帮忙! 可能有点晚了,但是当您在控制台中查看网络活动时会返回什么? 【参考方案1】:

由于提供的信息有限,我能提供的最佳帮助是猜测这可能与 CORS 失败的飞行前请求有关,该请求仅在您强制 401 响应时发生。


为什么这是我的猜测?

主要是因为:

CORS Error Response Status = 0

似乎每当 CORS 请求失败时,返回的响应总是 0。

AngularJS - $http get returns error with status 0?

您有 HTTP 访问控制 (CORS) 问题。


还请注意,解决 HTTP 相关问题的最佳方法是查看正在执行的实际 HTTP 请求。在浏览器中,您可以通过使用开发人员工具快速实现这一点,这将是我的建议。检查原始 HTTP 请求并查看可能导致您遇到的问题的不同情况。

【讨论】:

以上是关于Angular 2 JWT AuthHttp 错误 401 未捕获的主要内容,如果未能解决你的问题,请参考以下文章

Angular2-jwt - AuthHttp,刷新令牌,把它们放在一起

没有 AuthHttp 的提供者!在 angular2-jwt 上

Angular 6 中的 AuthHttp(从 Angular2 迁移到 Angular6)

angular2-jwt 编译元数据解析器错误

Angular JWT 令牌

PHP中的Auth0 JWT令牌验证