我正在使用一个非常简单的拦截器来检查 403 Access Forbidden 的 responseRejection 以将用户重定向到登录名,但它不会重定向。我可以 console.log 一直到 $location.path 之前和之后的那一行,它永远不会发生。这事发生在别人身上过吗?我已经盯着这个看了一会儿...本来我什至不想使用$location,但是如果没有循环依赖,我就无法注入ui.router,我也不知道如何摆脱如此 $location 应该让我继续前进,而我正在考虑它。
.factory('AuthInterceptor', ['$q', '$location',
function( $q, $location ) {
var service = {
responseError: function( responseRejection ) {
// Authorization issue, access forbidden
if( responseRejection.status === 403 ) {
// TODO: show a login dialog, and/or redirect to login
console.log("Response rejected. Redirecting to login...");
$location.path('/login');
$location.replace();
console.log("Not so much with the redirecting... I'm still here");
}
// Propagate error to any chained promise handlers
return $q.reject( responseRejection );
}
}
return service;
}])