1

是否可以使用角度拦截器来防止当前请求触发?

例如,我有ui-grid显示所有订单,每个订单都有一个EditRemove链接。如果用户单击这些链接中的任何一个并且他们无权执行这些操作,我希望 Angular 显示一个Access deniedtoastr 通知。

我的问题是,我能否以某种方式使用角度响应拦截器来查找HTTP 403 (Forbidden)状态结果并显示Access deniedtoastr,然后终止请求?

这是 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);
}
4

0 回答 0