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 left,right,mid函数
Jun 10 Javascript
将函数的实际参数转换成数组的方法
Jan 25 Javascript
获取内联和链接中的样式(js代码)
Apr 11 Javascript
jquery 显示*天*时*分*秒实现时间计时器
May 07 Javascript
jQuery实现鼠标点击弹出渐变层的方法
Jul 09 Javascript
js鼠标点击图片切换效果实现代码
Nov 19 Javascript
js创建jsonArray传输至后台及后台全面解析
Apr 11 Javascript
JS判断字符串变量是否含有某个字串的实现方法
Jun 03 Javascript
JS执行控制之节流模式实例分析
Dec 21 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
使用node.JS中的url模块解析URL信息
Feb 06 Javascript
JS中的const命令你真懂它吗
Mar 08 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 socket方式提交的post详解
2008/07/19 PHP
php+javascript的日历控件
2009/11/19 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
PHP类型约束用法示例
2016/09/28 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
Node.js静态服务器的实现方法
2018/02/28 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
JS使用for in有序获取对象数据
2020/05/19 Javascript
Python如何实现守护进程的方法示例
2017/02/08 Python
python绘制圆柱体的方法
2018/07/02 Python
解析Python的缩进规则的使用
2019/01/16 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
2015年班干部工作总结
2015/04/29 职场文书
公司酒会致辞
2015/07/30 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书
Tomcat配置访问日志和线程数
2022/05/06 Servers