防止在AngularJS中触发请求

时间:2015-03-05 08:46:45

标签: angularjs toastr

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

例如,我有ui-grid显示所有订单,每个订单都有EditRemove链接。如果用户点击其中任何一个链接并且他们无权执行这些操作,我希望有角度显示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);
}

0 个答案:

没有答案