AngularJS中的拦截器实例详解


Posted in Javascript onApril 07, 2017

AngularJS中的拦截器实例详解

异步操作

有时候需要在拦截器中做一些异步操作。幸运的是, 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
  };
}]);

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JavaScript 在线压缩和格式化收藏
Jan 16 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
js动态获取子复选项并设计全选及提交的实现方法
Jun 24 Javascript
微信小程序 数据访问实例详解
Oct 08 Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
Mar 20 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
Dec 13 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
Feb 25 Javascript
Vue.js如何优雅的进行form validation
Apr 07 #Javascript
详解Node.js实现301、302重定向服务
Apr 07 #Javascript
Express URL跳转(重定向)的实现方法
Apr 07 #Javascript
微信小程序 首页制作简单实例
Apr 07 #Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 #Javascript
js控制文本框禁止输入特殊字符详解
Apr 07 #Javascript
ES6学习笔记之Set和Map数据结构详解
Apr 07 #Javascript
You might like
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
python实现爬取图书封面
2018/07/05 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
高考备战决心书
2014/03/11 职场文书
2014年租房协议书范本
2014/10/30 职场文书
党员个人年度总结
2015/02/14 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电