angular 中的 401 错误代码解释不正确

401 error code interpreted incorrectly in angular

我对 angular 比较陌生,所以我不确定我是否遗漏了什么。

我有一个 Http 拦截器,用于向请求添加 JWT 令牌以及处理来自服务器的响应。

.factory('myHttpInterceptor', ['$q', '$location', '$window', function($q, $location, $window) {
   return {
       request: function(request) {
           console.log('myHttpInterceptor - request');
           return request;
       },
       requestError: function(requestError) {
           console.log('myHttpInterceptor - requestError');
           return requestError;
       },
       response: function(response) {
           console.log('myHttpInterceptor - response');
           return response;
       },
       responseError: function(responseError) {
           console.log('myHttpInterceptor - responseError');
           return responseError;
       }
   };
}]);


//Http Intercpetor to check auth failures 
angular.module("POSMobile").config(['$httpProvider', function($httpProvider) {
   $httpProvider.interceptors.push('myHttpInterceptor');
}]);

所以这就是问题所在,我试图通过更改到我的登录屏幕的路由来处理 401 未经授权的错误,但是 responseError 侦听器似乎从未触发过。

我检查了我的 iis 日志,我的服务肯定返回了 401 代码

这里我用Postman做了个测试,拿到了401Screenshot of Postman

但是在我的拦截器中它的计算结果是这样的xdk debug screenshot

最后在请求完成后,我在调试控制台中收到 401 错误

提前致谢

.factory('myHttpInterceptor',['$q','$location',function($q,$location) {
    return {
            responseError: function(response){
            console.log(response.status+' intercepted');
            return $q.reject(response);
           }
         };
     }]);

你能试试这个吗

尝试清除您用于测试的设备上的应用程序数据