是否可以使用角度拦截器来防止当前请求触发?
例如,我有ui-grid
显示所有订单,每个订单都有一个Edit
和Remove
链接。如果用户单击这些链接中的任何一个并且他们无权执行这些操作,我希望 Angular 显示一个Access denied
toastr 通知。
我的问题是,我能否以某种方式使用角度响应拦截器来查找HTTP 403 (Forbidden)
状态结果并显示Access denied
toastr,然后终止请求?
这是 responseError 拦截器的逻辑:
var responseError = function (rejection) {
if (rejection.status === 401) {
return $injector.get('authService').refreshToken().then(function (response) {
return retryHttpRequest(rejection.config).then(function (response) {
return response || $q.when(response);
}, function () {
$injector.get('$state').go('logout');
return $q.reject(rejection);
});
})
}
else if (rejection.status == 400 || rejection.status == 500) {
notification.error("Unable to process the request due to an error!");
}
else if (rejection.status == 403) {
notification.error("You do not have sufficient permissions!");
}
return $q.reject(rejection);
}