文档章节

Angularjs中的拦截器 使用笔记

令小力
 令小力
发布于 2016/12/09 10:45
字数 217
阅读 32
收藏 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
    };
}]);

© 著作权归作者所有

共有 人打赏支持
令小力
粉丝 4
博文 10
码字总数 9383
作品 0
海淀
程序员
AngularJS的 拦截器 和 Mocks

拦截器是 AngularJS 内置的一个特性,你可以插入一个请求或者回调方法链,修改或者打断各终结点之间的逻辑流。但在 AngularJS 应用的单元测试中,拦截器是用来捕捉 XHR 请求, 以避免外部请求...

开源中国匿名会员
2014/06/10
0
0
Angular 6.0.4 和 6.1.0-beta.0 发布,Web 前端框架

Angular 6.0.4 和 6.1.0-beta.0 已发布,两者的主要更新都是修复 bug,不过 6.1.0-beta.0 还添加了一些新特性。 修复的 bug 包括 修复浏览器检测逻辑 不依赖于不兼容的 TS 方法 避免使用 ht...

局长
06/07
0
0
AngularJS 中文资料+工具+库+Demo 大搜集

中文学习资料: 中文资料且成系统的就这么多,优酷上有个中文视频。 http://www.cnblogs.com/lcllao/archive/2012/10/18/2728787.html 翻译的官方的Guide http://www.ituring.com.cn/miniboo...

liaolzy2
2015/05/31
0
0
探索angular源码--启动(1)

前言 angular2.0已经出来了,本来应该是研究最新的angular源码,但毕竟用了angular1这么久了,一直对其源码实现十分好奇,再加上研究源码主要目的是学习,版本不是特别重要,因此就1.3版源码...

烽穹寒渊
2015/08/01
0
0
读书笔记“使用AngularJs开发下一代web应用”

国内一个挺好的读书笔记 http://www.sunzhongwei.com/angularjs.html 源码下载地址https://github.com/shyamseshadri/angularjs-book Angular SEO http://www.yearofmoo.com/2012/11/angula......

lilugirl
2014/01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis应用之分布式锁(set)

Redis应用之分布式锁(set) 在单机应用的场景下,我们常使用的锁主要是synchronized与Lock;但是在分布式横行的大环境下,显然仅仅这两种锁已经无法满足我们的需求; 需求:秒杀场景下,有若干...

GMarshal
24分钟前
0
0
python实现简单的文件加密与解密

对于任意的一个文件,本质上来讲都是二进制的。 对于任意一个二进制数a,对其用另外任意一个与a的位数相同的二进制数m进行“异或”操作得到结果e,即e=a xor m; 如果再讲上面得到的e用m进行...

Aomo
25分钟前
0
0
Android开发应用程序生成以太坊钱包

Android应用程序以太坊钱包生成,要做的工作不少,不过如果我们一步一步来应该也比较清楚: 1.在app/build.gradle中集成以下依赖项: compile ('org.web3j:core-android:2.2.1') web3j核心是...

geek12345
40分钟前
0
0
ArrayList嘿嘿嘿

数组扩容技术: //扩容技术 将原数组objs类容复制到新数组并且长度为11 Object[] newObjs = Arrays.copyOf(objs,11); 数组比较大那么System.arraycopy比较有优势,因为其使用的是内存复制,省...

熊猫你好
今天
2
0
Android平台下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

python版的sxtwl_cpp传送入口 在build.gradle的allprojects中加入 maven { url 'https://dl.bintray.com/yuangu/sxtwl' } 最终如下面代码所示: allprojects { repositories { ......

元谷
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部