angularjs拦截器和responseError返回错误的响应HTTP代码

时间:2019-06-06 14:37:56

标签: angularjs jwt interceptor angular-http-interceptors jwt-auth

我使用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:

enter image description here

在“网络”标签中的外观:

enter image description here

我在做什么错,为什么我看不到401代码?

1 个答案:

答案 0 :(得分:0)

确保在定义拦截器工厂后,在配置阶段将其推入其拦截器数组,并在$ httpProvider中注册它。

使用拦截器的示例:

app.config(["$httpProvider", $httpProvider => {
    $httpProvider.interceptors.push("test_interceptor");
}]);

Here is a related article for further research

Related docs for your angularjs version