AngularJs-$httpProvider.interceptors多重响应错误
AngularJs - $httpProvider.interceptors multiple responseError
我有401错误的responseError处理程序。HTTP拦截器将要求模式用户进行身份验证,并继续重试HTTP请求。但问题是,如果我有多个失败的请求拦截器向我显示了多个模态,并且我需要进行几次身份验证。在第一个请求中通过身份验证后,如何重试所有HTTP请求?
$httpProvider.interceptors.push(function($q, $injector, Auth) {
return {
responseError: function(rejection) {
if (rejection.status === 401) {
return Auth.authenticate().then(function() {
return $injector.get('$http')(rejection.config);
});
}
return $q.reject(rejection);
}
};
});
.factory('Auth', function($injector) {
return {
authenticate: function() {
var $uibModal = $injector.get('$uibModal');
var modal = $uibModal.open({
templateUrl: '/authenticateModal.html',
controller: 'AuthenticateModalController',
});
return modal.result.then(function() {
// success
});
}
}
});
.controller('AuthenticateModalController', function ($scope, $uibModalInstance, $http, Auth) {
$scope.submit = function() {
Auth.login({
'email': $scope.email,
'password': $scope.password
}).then(function successCallback(response) {
$uibModalInstance.close();
}, function errorCallback(response) {
console.log('error');
});
};
})
如果对Auth
工厂的多次调用只需要一个模态,则应该定义它,以便每次都可以访问同一个模态实例:
.factory('Auth', function($injector) {
var $uibModal = $injector.get('$uibModal');
var modal
return {
authenticate: function() {
if (!modal) {
modal = $uibModal.open({
templateUrl: '/authenticateModal.html',
controller: 'AuthenticateModalController',
});
}
return modal.result.then(function() {
// success
});
}
}
});
相关文章:
- "所请求的名称已经作为不同类型的“”存在;HTTP 409响应错误
- 使用来自AngularJS的Web API JSON响应-错误:应为和数组,但得到了一个对象
- Json响应错误Json.parse:意外的数据结束错误
- AngularJs-$httpProvider.interceptors多重响应错误
- 使用ajax的ReCaptcha响应错误
- 节点服务器响应错误: process.nextTick(function(){throw err;});.
- 为什么我在使用 .then() 的 AngularJS 工厂中没有得到正确的响应/错误
- 在 MEAN Web 应用程序中,从 Express(服务器端)发送 HTTP 响应错误 403、500,未在 Angu
- E_UNKNOWN beforeCreate 和其他生命周期回调的响应错误
- 处理 HTTPS 文件响应错误
- 防止 Internet Explorer 中的“无响应”错误
- Backbone.sync 获取所有响应错误状态代码
- 如何防止“无响应”错误
- 收集后POST响应错误.插入NodeJS Mongo模块
- 处理来自多个来源的响应错误
- 在角度中,如果服务器响应{错误:'ok'},则$http去捕获
- Express BodyParser响应错误的请求,状态为400
- 发送ajax请求时获取响应错误
- Webdriver/FXDriver utils.js导致脚本无响应'错误
- worldweatheronline API响应错误