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 相关文章推荐
点图片上一页下一页翻页效果
Jul 09 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
Oct 17 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
Sep 04 Javascript
类似于QQ的右滑删除效果的实现方法
Oct 16 Javascript
vue bootstrap小例子一枚
Jun 09 Javascript
js数组实现权重概率分配
Sep 12 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
快速搭建React的环境步骤详解
Nov 06 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
JavaScript实现星级评价效果
May 17 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 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读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
php创建sprite
2014/02/11 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
python根据距离和时长计算配速示例
2014/02/16 Python
简单介绍Python中的round()方法
2015/05/15 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
python 识别图片中的文字信息方法
2018/05/10 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
python中对数据进行各种排序的方法
2019/07/02 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
python字典的遍历3种方法详解
2019/08/10 Python
Python随机数函数代码实例解析
2020/02/09 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
python pymysql库的常用操作
2020/10/16 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
党员年终民主评议的自我评价
2013/11/05 职场文书
党员教师工作决心书
2014/03/13 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
用人单位聘用意向书
2015/05/11 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python