Angular 拦截器(403、401)

本文介绍了一个基于AngularJS的权限拦截器实现方法,通过自定义的authInterceptor服务来处理HTTP请求的响应错误,特别是针对401和403状态码进行了特别处理。
部署运行你感兴趣的模型镜像

直接上代码:


angular.module('webb-ui').factory('authInterceptor', ['$q','$rootScope','$location','$injector','$timeout',function ($q,$scope,$location,$injector,$timeout) {

    function isNotPriv(url){
        return url.indexOf("/priv/") === -1
    }
    var authInterceptor = {
        'request': function(config) {
            var deferred = $q.defer();
            var url = config.url;
            deferred.resolve(config);
            return deferred.promise;
        },
        'response':function(response){
            return response;
        },
        'responseError': function(rejection) {
            var rootScope = $injector.get('$rootScope');
            if(isNotPriv(rejection.config.url)){
                var status = rejection.status;
                if(status === 403){
                    $scope.four_zero_th = true;//自己的业务逻辑处理代码
                    rootScope.selectEtl();
                    return rejection;
                }else if(status === 401) {
                    $scope.four_zero_one = true;
                    rootScope.selectEtl();
                    return rejection;
                }
            }
            return $q.reject(rejection);
        }
    };
    return authInterceptor;

}]);


说明:responseError 此例子主要是对请求异常进行统一的拦截处理。
angular.module('webb-ui')
.config(
['$stateProvider', '$urlRouterProvider', '$httpProvider', '$locationProvider',
    function ($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider) {
        $httpProvider.interceptors.push('authInterceptor');

        /*
        *这里删除一个$injector,解决不能获取code码的问题。
        * */
        //$httpProvider.interceptors.pop();
}]);


您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值