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实现页面关键词高亮显示的方法
Mar 12 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
jquery实现先淡出再折叠收起的动画效果
Aug 07 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
js仿百度切换皮肤功能(html+css)
Jul 10 Javascript
JavaScript中数组的22种方法必学(推荐)
Jul 20 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 Javascript
jquery.form.js异步提交表单详解
Apr 25 jQuery
vue-cli单页应用改成多页应用配置详解
Jul 14 Javascript
vue引用js文件的多种方式(推荐)
May 17 Javascript
vue.config.js常用配置详解
Nov 14 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时间格式控制符对照表分享
2013/07/23 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
python 写的一个爬虫程序源码
2016/02/28 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
学生请假条格式
2014/04/11 职场文书
高三学生评语大全
2014/04/25 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
老龙头导游词
2015/02/11 职场文书
2015年推普周活动方案
2015/05/06 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
大学生入党自传2015
2015/06/26 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android