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 相关文章推荐
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
JS基础之undefined与null的区别分析
Aug 08 Javascript
jquery批量设置属性readonly和disabled的方法
Jan 24 Javascript
28个常用JavaScript方法集锦
Jan 14 Javascript
jquery原理以及学习技巧介绍
Nov 11 Javascript
jQuery选择器基础入门教程
May 10 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
js实现3D图片环展示效果
Mar 09 Javascript
JS实现获取word文档内容并输出显示到html页面示例
Jun 23 Javascript
Element Rate 评分的使用方法
Jul 27 Javascript
javascript遍历对象的五种方式实例代码
Oct 24 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调整服务器时间的方法
2015/04/03 PHP
js模拟点击事件实现代码
2012/11/06 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
js密码强度校验
2015/11/10 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
React实现todolist功能
2020/12/28 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
PyTorch学习笔记之回归实战
2018/05/28 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
班组长的岗位职责
2013/12/09 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
中学生自我评价范文
2014/02/08 职场文书
股权转让协议书范本
2014/04/12 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
2015年商场工作总结
2015/04/27 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
python 远程执行命令的详细代码
2022/02/15 Python
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python