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 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
Mar 26 Javascript
Cookie 小记
Apr 01 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
关于网页中的无缝滚动的js代码
Jun 09 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
Oct 26 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
Jan 26 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
重新认识vue之事件阻止冒泡的实现
Aug 02 Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 Javascript
js实现页面导航层级指示效果
Aug 25 Javascript
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
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获取mysql版本的几种方法小结
2008/03/25 PHP
初品cakephp 入门基础
2012/02/16 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
js时间日期和毫秒的相互转换
2013/02/22 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
javascript的BOM
2016/05/03 Javascript
原生js开发的日历插件
2017/02/04 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
Vue实现简易计算器
2020/02/25 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
python实现斐波那契递归函数的方法
2014/09/08 Python
python修改注册表终止360进程实例
2014/10/13 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
Python缓存技术实现过程详解
2019/09/25 Python
python3将变量输入的简单实例
2020/08/19 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
造价工程师个人求职信
2013/09/21 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
赞助商致辞
2015/07/30 职场文书
外科护士长工作总结
2015/08/12 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技