【问题标题】:angularjs interceptor and responseError return wrong response HTTP codeangularjs拦截器和responseError返回错误的响应HTTP代码
【发布时间】:2019-06-07 15:07:35
【问题描述】:

我使用 angularjs 1.5.0 和 angular-jwt 0.1.11。

当后端返回 401 Unauthorized 并将用户重定向到登录页面时,我尝试使用拦截器来捕获情况。

我的拦截器是这样的:

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 代码?

【问题讨论】:

  • 状态 -1 通常意味着浏览器由于 CORS 问题而阻止了响应。

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


【解决方案1】:

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

使用拦截器的示例:

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

Here is a related article for further research

Related docs for your angularjs version

【讨论】:

  • 是的,拦截器注册了,我什至停在拦截器的断点处,所以它可以工作。
猜你喜欢
  • 2019-02-11
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
相关资源
最近更新 更多