是否可以使用角度拦截器来防止当前请求被触发?
例如,我有ui-grid
显示所有订单,每个订单都有Edit
和Remove
链接。如果用户点击其中任何一个链接并且他们无权执行这些操作,我希望有角度显示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);
}