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 07 Javascript
在AngularJS框架中处理数据建模的方式解析
Mar 05 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
Aug 09 Javascript
js鼠标跟随运动效果
Mar 11 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
Apr 25 Javascript
JS实现为动态创建的元素添加事件操作示例
Mar 17 Javascript
js实现点击按钮复制文本功能
Jul 20 Javascript
vue动态子组件的两种实现方式
Sep 01 Javascript
Vue-CLI项目中路由传参的方式详解
Sep 01 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
Apr 08 Javascript
vue打包时去掉所有的console.log
Apr 10 Vue.js
Echarts如何重新渲染实例详解
May 30 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过滤敏感词的示例
2014/03/31 PHP
比较完整的微信开发php代码
2016/08/02 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
便捷提取python导入包的属性方法
2018/10/15 Python
python生成随机红包的实例写法
2019/09/02 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
新电JAVA笔试题目
2014/08/31 面试题
东方通信股份有限公司VC面试题
2014/08/27 面试题
感恩母亲节活动方案
2014/03/04 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
妈妈别哭观后感
2015/06/08 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python