分享Angular http interceptors 拦截器使用(推荐)


Posted in Javascript onNovember 10, 2019

AngularJS 简介

AngularJS 是一个 JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。

AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。

拦截器

在开始创建拦截器之前,一定要了解 $q和延期承诺api

出于全局错误处理,身份验证或请求的任何同步或异步预处理或响应的后处理目的,希望能够在将请求移交给服务器之前拦截请求,并在将请求移交给服务器之前将响应拦截发起这些请求的应用程序代码-拦截器利用promise api满足同步和异步预处理的需求。

拦截器是$httpProvider通过将它们添加到$httpProvider.interceptors数组而向其注册的服务工厂。调用工厂并注入依赖项(如果指定),并返回拦截器。

有两种拦截器(和两种拒绝拦截器):

  • request:拦截器通过http config对象调用。该函数可以自由修改config对象或创建新对象。函数需要config直接返回对象,或者包含config或新config对象的Promise。
  • requestError:当先前的拦截器抛出错误或被拒绝解决时,拦截器将被调用。
  • response:拦截器通过http response对象调用。该函数可以自由修改response对象或创建新对象。函数需要response直接返回对象,或者作为包含response或新response对象的承诺。
  • responseError:当先前的拦截器抛出错误或被拒绝解决时,拦截器将被调用。
// register the interceptor as a service
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
 return {
  // optional method
  'request': function(config) {
   // do something on success
   return config;
  },
  // optional method
  'requestError': function(rejection) {
   // do something on error
   if (canRecover(rejection)) {
    return responseOrNewPromise
   }
   return $q.reject(rejection);
  },
  // optional method
  'response': function(response) {
   // do something on success
   return response;
  },
  // optional method
  'responseError': function(rejection) {
   // do something on error
   if (canRecover(rejection)) {
    return responseOrNewPromise
   }
   return $q.reject(rejection);
  }
 };
});
$httpProvider.interceptors.push('myHttpInterceptor');
// alternatively, register the interceptor via an anonymous factory
$httpProvider.interceptors.push(function($q, dependency1, dependency2) {
 return {
  'request': function(config) {
    // same as above
  },
  'response': function(response) {
    // same as above
  }
 };
});

此处有一个坑,在push时,提示未定义拦截器,因为$httpProvider在config 拦截器时,拦截器service 还不能找到,

可以将拦截器service 定义在config依赖的模块中使用。

以上内容是小编给大家分享Angular http interceptors 拦截器使用,希望对大家有所帮助!

Javascript 相关文章推荐
IE8 浏览器Cookie的处理
Jan 31 Javascript
关于jQuery判断元素是否存在的问题示例探讨
Jul 21 Javascript
javascript运动详解
Jul 06 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
js实现textarea限制输入字数
Feb 13 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 Javascript
11行JS代码制作二维码生成功能
Mar 09 Javascript
setTimeout时间设置为0详细解析
Mar 13 Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 Javascript
JS数组求和的常用方法总结【5种方法】
Jan 14 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 Javascript
vue-父子组件和ref实例详解
Nov 10 #Javascript
vue $set 给数据赋值的实例
Nov 09 #Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 09 #Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
Nov 09 #Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 #Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 #Javascript
Vue实现点击按钮复制文本内容的例子
Nov 09 #Javascript
You might like
php文件缓存类用法实例分析
2015/04/22 PHP
jQuery中的val()示例应用
2014/02/26 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
浅谈node的事件机制
2017/10/09 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
优秀毕业生自荐信范文
2014/01/01 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
教师评语大全
2014/04/28 职场文书
上班离岗检讨书
2014/09/10 职场文书
个人租房协议书
2014/11/28 职场文书
2014年校长工作总结
2014/12/11 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
作文之亲情600字
2019/09/23 职场文书
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫