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 相关文章推荐
仿微博字符限制效果实现代码
Apr 20 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
js实现按钮颜色渐变动画效果
Aug 20 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
Oct 21 Javascript
javascript笔记之匿名函数和闭包
Feb 06 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
angularjs项目的页面跳转如何实现(5种方法)
May 25 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
js canvas实现写字动画效果
Nov 30 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脚本[带参数]的方法
2010/01/22 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python实现决策树分类(2)
2018/08/30 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
Python 获取项目根路径的代码
2019/09/27 Python
Python列表解析操作实例总结
2020/02/26 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
一份创业计划书范文
2014/02/08 职场文书
难忘的一课教学反思
2014/04/30 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
导游词之杭州西湖
2019/09/19 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python