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 相关文章推荐
jQuery hover 延时器实现代码
Mar 12 Javascript
jquery 查找iframe父级页面元素的实现代码
Aug 28 Javascript
javascript读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
Nov 30 Javascript
Position属性之relative用法
Dec 14 Javascript
javascript数组遍历的方法实例分析
Sep 13 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
Dec 29 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
Feb 17 Javascript
JS组件系列之JS组件封装过程详解
Apr 28 Javascript
详解Angular CLI + Electron 开发环境搭建
Jul 20 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
May 27 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/05/21 PHP
PHP 采集程序原理分析篇
2010/03/05 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
jQuery 技巧小结
2010/04/02 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
Python中关键字is与==的区别简述
2014/07/31 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
Python常用库大全及简要说明
2020/01/17 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
xml有哪些解析技术?区别是什么
2016/04/26 面试题
日语专业毕业生自荐信
2013/11/11 职场文书
房地产销售计划书
2014/01/10 职场文书
师生聚会感言
2014/01/26 职场文书
单位租房协议书范本
2014/12/04 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL