我在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。我完全不知所措,有人能帮上忙吗?
发布于 2017-01-31 21:12:59
由于提供的信息有限,我能提供的最好的帮助是猜测这可能与CORS失败的飞行前请求有关,只有当您强制401响应时才会发生。
为什么这是我的猜测?
主要是因为:
CORS Error Response Status = 0
似乎每当CORS请求失败时,返回的响应总是0。
AngularJS - $http get returns error with status 0?
你有超文本传输协议访问控制(CORS)问题。
还要注意,解决HTTP相关问题的最佳方法是查看正在执行的实际HTTP请求。在浏览器中,您可以通过使用开发人员工具快速实现这一点,这将是我的建议。检查原始HTTP请求,查看可能导致您遇到的问题的不同情况。
https://stackoverflow.com/questions/41842658
复制相似问题