【发布时间】:2015-11-09 18:51:54
【问题描述】:
我正在尝试在使用 http 拦截器接收禁止或未经授权的 http 请求时进行状态导航,但我在 $state.go 承诺中收到错误
Error: transition superseded
这是我的 responseError 拦截器:
angular.module('starter')
.factory('httpResponseInterceptor', function($injector) {
return {
responseError: function(errorResponse) {
var loginParams = {
info: true,
reason: 'Please login.',
title: errorResponse.data
};
var $state = $injector.get('$state');
switch (errorResponse.status) {
case 403:
$state.go('login', loginParams).then(function() {}, function(res) {
console.log(res);
});
break;
case 401:
$injector.get('$state').go('login', loginParams);
break;
}
return errorResponse;
}
};
});
在这种情况下有什么方法可以使用拦截器吗? 不过,在 $state.go 周围加上一个超时就可以了
【问题讨论】:
标签: javascript angularjs angular-ui-router