Javascript 角度误差拦截器发射了两次

Javascript 角度误差拦截器发射了两次,javascript,angularjs,Javascript,Angularjs,我有一个拦截器,接收401(未经授权) 一切看起来都很好,但是当我做一个请求时,拦截器被触发了两次。非常奇怪 App.factory('HttpResponseInterceptor', ['$q', '$injector', '$location','ModalService', function ($q, $injector, $location, ModalService) { return { responseError: function (re

我有一个拦截器,接收401(未经授权)

一切看起来都很好,但是当我做一个请求时,拦截器被触发了两次。非常奇怪

App.factory('HttpResponseInterceptor', ['$q', '$injector', '$location','ModalService', function ($q, $injector, $location, ModalService) {
    return {        
        responseError: function (response) {

            if (response.status === 401) {

                console.log("401");

            }

            return $q.reject(response);
        }
    }
}]);

App.config(['$httpProvider', function ($httpProvider) {
    $httpProvider.interceptors.push('HttpResponseInterceptor');
}]);
我进入chrome调试控制台“2401”,这意味着它被解雇了两次

这是启动网络调用的代码。它只启动了一次,我通过fiddle检查了它

控制员:

angular.module('App')
.controller('HomeCtrl',['$scope','$http', function ($scope, $http) {

    $scope.Open = function () {
        $http.get('/Home/GetSum').
               then(function (response) {
                   alert(response);
               });
    }

}])
以及以下观点:

<button ng-controller="HomeCtrl" ng-click="Open()">OPEN</button>
打开
请注意,我正在使用Ui路由器。

尝试删除$q.reject(响应)


如果响应返回401,它将被自动拒绝

,则请求可能被发送两次,并且两次都得到相同的结果。我们能看到发出请求的代码吗?或者尝试在那里添加一些日志语句,看看它是否只在控制台打开(fiddle)并且只调用一次时运行。我将发布代码,这是一个简单的按钮点击,可以发布到我的一个端点。谢谢你,它成功了。你能更详细地解释一下如何准确地处理错误吗。角度文档非常可怕。每次响应返回一个错误,(4xx,5xx)它都会被自动拒绝,你可以使用.catch(function())例如:$http.get捕捉错误('/Home/GetSum').then(函数(响应){alert(响应);}).catch(函数(错误){console.log(错误)});