axios使用拦截器统一处理所有的http请求的方法


Posted in Javascript onNovember 02, 2018

axios使用拦截器

  在请求或响应被 then 或 catch 处理前拦截它们。

http request拦截器

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
 }, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
 });

http respones拦截器

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response;
 }, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
 });

移除拦截器

var myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);

为自定义axios实例添加拦截器

var instance = axios.create();
instance.interceptors.request.use(function () {/*...*/});

PS:下面看下axios拦截器使用

import axios from 'axios' // axios引用
import store from '../../store' // store引用
const serivce = axios.create({ // 创建服务
 baseURL: 'http://test.api.rujiaowang.net', // 基础路径
 timeout: 5000 // 请求延时
})
serivce.interceptors.request.use( // 请求拦截
 config => {
  if (store.getters.userToken) {
   config.headers['X-Token'] = store.getters.userToken
   config.headers['User-Type'] = store.getters.userType ? store.getters.userType : '' // 请求头中存放用户信息
   config.onUploadProgress = (progressEvent) => {
    var complete = (progressEvent.loaded / progressEvent.total * 100 | 0) + '%'
    store.dispatch('setupLoadPercent', complete)
   }
  }
  return config
 },
 error => {
  return Promise.reject(error)
 }
)
serivce.interceptors.response.use( // 回复拦截,主要针对部分回掉数据状态码进行处理
 response => {
  return response
 },
 error => {
  return Promise.reject(error)
 }
)
export default serivce

总结

以上所述是小编给大家介绍的axios使用拦截器统一处理所有的http请求的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 一个图片切换的插件
Oct 09 Javascript
Web跨浏览器进程通信(Web跨域)
Apr 17 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
JS 作用域与作用域链详解
Apr 07 Javascript
JavaScript判断微信浏览器实例代码
Jun 13 Javascript
js实现精确到毫秒的倒计时效果
Aug 05 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
ES6学习之变量的两种命名方法示例
Jul 18 Javascript
浅谈ES6 模板字符串的具体使用方法
Nov 07 Javascript
animate.css在vue项目中的使用教程
Aug 05 Javascript
基于JS实现操作成功之后自动跳转页面
Sep 25 Javascript
全面解析js中的原型,原型对象,原型链
Jan 25 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 #Javascript
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 #Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 #Javascript
微信小程序实现留言板(Storage)
Nov 02 #Javascript
微信小程序实现留言板功能
Nov 02 #Javascript
小程序实现留言板
Nov 02 #Javascript
js中的闭包实例展示
Nov 01 #Javascript
You might like
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
小程序实现留言板
2018/11/02 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python类中super()和__init__()的区别
2016/10/18 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
用Python设计一个经典小游戏
2017/05/15 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
python 求定积分和不定积分示例
2019/11/20 Python
python3 配置logging日志类的操作
2020/04/08 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
创业计划书的内容步骤和要领
2014/01/04 职场文书
农村党支部先进事迹
2014/01/14 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
施工安全生产承诺书
2014/05/23 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书