gpt4 book ai didi

javascript - Angular ErrorInterceptor 触发两次

转载 作者:行者123 更新时间:2023-12-02 15:42:54 25 4
gpt4 key购买 nike

我有一个接收 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 调试控制台“2 401”,这意味着它被触发了两次

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

Controller :

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

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

}])

和 View :

<button ng-controller="HomeCtrl" ng-click="Open()">OPEN</button>

请注意,我使用的是 Ui 路由器。

最佳答案

尝试删除 $q.reject(response)。

如果响应返回401,则自动拒绝

关于javascript - Angular ErrorInterceptor 触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32441621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com