我使用angularjs 1.5.0和angular-jwt 0.1.11。
当后端返回401未经授权时,我尝试使用拦截器捕获情况,并将用户重定向到登录页面。
我的拦截器看起来像这样:
import angular from 'angular';
export default angular
.module('app.factories', [])
.factory('test_interceptor', function ($q) {
"ngInject";
return {
'responseError': function(rejection) {
// do something on success
let status = rejection.status;
console.log('test_interceptor responseError');
console.log(rejection);
console.log(rejection.status);
return rejection;
},
};
});
但是当我从本地存储中删除令牌并尝试发出请求时,我从后端收到错误401,但是拒绝状态为-1:
在“网络”标签中的外观:
我在做什么错,为什么我看不到401代码?
答案 0 :(得分:0)
确保在定义拦截器工厂后,在配置阶段将其推入其拦截器数组,并在$ httpProvider中注册它。
使用拦截器的示例:
app.config(["$httpProvider", $httpProvider => {
$httpProvider.interceptors.push("test_interceptor");
}]);