Angular 2 JWT AuthHttp错误401没有被捕获

时间:2017-01-25 02:59:54

标签: angular jwt http-status-code-401 auth0

我在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 个答案:

答案 0 :(得分:0)

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

为什么这是我的猜测?

主要是因为:

CORS Error Response Status = 0

  

似乎每当CORS请求失败时,返回的响应始终为0.

AngularJS - $http get returns error with status 0?

  

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

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