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 相关文章推荐
js 数组的for循环到底应该怎么写?
May 31 Javascript
初识JQuery 实例一(first)
Mar 16 Javascript
javascript使用location.search的示例
Nov 05 Javascript
JavaScript作用域与作用域链深入解析
Dec 06 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
Apr 08 Javascript
JavaScript实现时间倒计时跳转(推荐)
Jun 28 Javascript
微信小程序 action-sheet底部菜单详解
Oct 27 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
Nov 21 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
Mar 23 jQuery
js图片无缝滚动插件使用详解
May 26 Javascript
Vue axios获取token临时令牌封装案例
Sep 11 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
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
详解js的作用域、预解析机制
2018/02/05 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
python3.4实现邮件发送功能
2018/05/28 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
深入理解Django-Signals信号量
2019/02/19 Python
Pandas透视表(pivot_table)详解
2019/07/22 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
2015年小学开学寄语
2015/02/27 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
治庸问责工作总结
2015/08/11 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python