Angularjs中的拦截器 使用笔记
Angularjs中的拦截器 使用笔记
令小力 发表于10个月前
Angularjs中的拦截器 使用笔记
  • 发表于 10个月前
  • 阅读 27
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

异步操作

有时候需要在拦截器中做一些异步操作。幸运的是, AngularJS 允许我们返回一个 promise 延后处理。它将会在请求拦截器中延迟发送请求或者在响应拦截器中推迟响应。

下面是项目中用到的代码。

ZbtjxcApp.factory('myHttpInterceptor', ['$q', '$window','$location', function($q, $window,$location) {
    return {
        // 全局响应
        'response': function(response) {
            // 这里还可以利用promise做异步处理,目前不用做,好像也能满足需求
            switch (response.status) {
                case (200):
                    if (response.data) {
                        //这里可以做自己相应的处理
                        if (response.data.code == 100100) {
                            $window.location.href = "/login.html";
                        } 
                        /*else if(response.data.code = 100200) {
                            $location.path('/unauthorized');
                        }*/
                    }
                    break;
                case (500):
                    //后期在处理
                    console.log("服务器正忙 -- 500");
                    break;
                case (404):
                    console.log("not found -- 404");
                    break;
                default:
                    console.log("服务器正忙");
            }
            return response;
        }
    };
}]).config(['$httpProvider', function($httpProvider) {
    $httpProvider.interceptors.push('myHttpInterceptor');
}]);

ZbtjxcApp.factory('pageService', ['$http', function($http) {
    var getPageList = function(geturl, getdata) {
        return $http.get(geturl, {
            params: getdata
        });
    }
    return {
        getPageList: getPageList
    };
}]);
标签: AngularJS
共有 人打赏支持
粉丝 2
博文 7
码字总数 7609
×
令小力
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: