是否可以使用Angular拦截非xhr请求?
我有这个问题,如果用户键入URL,比如/admin
,如果用户没有登录,服务器将返回401.但是因为请求不是xhr,所以它不会被截获,并且因此用户不会被重定向到登录页面。
这适用于我的xhr请求:
$provide.factory('authorizationService', ['$q', '$injector', function ($q, $injector) {
return {
// Success: just return the response
response: function (response) {
return response || $q.when(response);
},
// Error: check for the 401 error status
responseError: function (rejection) {
if (rejection.status === 401)
$injector.get('$state').transitionTo('users.login');
return $q.reject(rejection);
}
}
}]);
$httpProvider.interceptors.push('authorizationService');
编辑:我可以在服务器端重定向非授权的非xhr请求,但我想将它放在一个地方。