我有一个简单的角度拦截器拦截请求并添加授权头。它还拦截401的响应错误,以了解请求是否因授权而失败。
不幸的是,它似乎搞乱了$ resource,因为我的$ resource调用ALWAYS返回成功回调而且从不出错(无论是400还是500)。
它绝对是拦截器,因为如果我删除它,$ resource调用将返回正确的回调。
有关如何解决此问题的任何想法?
这是拦截器请求:
function request(config) {
var token = 'whatever-my-token-is';
if (token) {
config.headers.authorization = token;
}
return config;
}
还有responseError:
function responseError(response) {
if (response.status === 401) {
$rootScope.$broadcast('unauthorized');
}
return response;
}
任何帮助表示赞赏
答案 0 :(得分:0)
我认为您需要使用承诺来返回错误
将$q
添加到您的Interceptor工厂。
像这样
$provide.factory('MyHttpInterceptor', function ($q){
...
})
然后有responseError()
function responseError(response) {
if (response.status === 401) {
$rootScope.$broadcast('unauthorized');
}
return $q.reject(response);
}
此链接也可能有助https://djds4rce.wordpress.com/2013/08/13/understanding-angular-http-interceptors/