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实现多个重叠层点击切换效果的方法
Apr 24 Javascript
jquery模拟进度条实现方法
Aug 03 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
jQuery中 $ 符号的冲突问题及解决方案
Nov 04 Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
Aug 30 Javascript
vue 项目接口管理的实现
Jan 17 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
JS实现横向轮播图(初级版)
Jun 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
文件上传程序的全部源码
2006/10/09 PHP
php生成文件
2007/01/15 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python+django实现文件下载
2016/01/17 Python
Python实现的特征提取操作示例
2018/12/03 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
python map比for循环快在哪
2020/09/21 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
存储过程和函数的区别
2013/05/28 面试题
出纳岗位职责
2013/11/09 职场文书
五年级作文之成长
2019/09/16 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers