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 相关文章推荐
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 Javascript
对table和ul实现js分页示例分享
Feb 24 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
基于jquery实现下拉框美化特效
Feb 02 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
轻松掌握JavaScript策略模式
Aug 25 Javascript
javascript容错处理代码(屏蔽js错误)
Jan 20 Javascript
jQuery模拟窗口抖动效果
Mar 15 Javascript
jquery 手势密码插件
Mar 17 Javascript
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
8个非常实用的Vue自定义指令
Dec 15 Vue.js
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+MYSQL 出现乱码的解决方法
2008/08/08 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
python修改注册表终止360进程实例
2014/10/13 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
大学生找工作推荐信范文
2013/11/28 职场文书
2014年教师节寄语
2014/04/03 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
第二次离婚起诉书
2015/05/18 职场文书
爱国影片观后感
2015/06/18 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
解决Python字典查找报Keyerror的问题
2021/05/26 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL