一、先创建三个文件:

  1. api.js 存放接口列表的
  2. http.js 封装axios的
  3. config.js axios的一些配置项

二、config.js

一些基础的配置,如果有其他需求可以自己添加

// import { getSession } from '@/utils';const config = {baseURL: 'http://192.168.110.250:3000',timeout: 15000,headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'},// 自定义全局请求头// headerHandlers: [//   () => new Promise((resolve) => {//     const userInfo = getSession('userInfo');//     resolve({'session': userInfo ? userInfo.session : ''});//   })// ],
}export default config;

三、api.js

存放接口的文件,如果接口有很多,可以分模块新建几个js再往里面引入

const apiArr = [// {//   name: "test", // 接口调用方法名//   path: '/api/test', // 后端路径//   method: "POST", // 默认POST//   headers: {"token": 123}, // 自定义单个接口的请求头//   desc: "登录接口", // 接口描述// }{name: "login",path: '/api/login',desc: "登录接口",}
]export default apiArr;

四、http.js

import axios from 'axios';
import axiosConfig from './config'; // axios请求配置
import apiArr from './api'; // 用户请求集合
import qs from 'qs';
import { Message } from 'element-ui';// 创建axios实例
const service = axios.create({baseURL: axiosConfig.baseURL,timeout: axiosConfig.timeout,headers: axiosConfig.headers
});// 添加请求拦截器
service.interceptors.request.use(function (config) {//  promise动态添加请求头,加完之后再return出config继续请求const headerHandlers = (axiosConfig.headerHandlers || []).map(handler => {return handler(config).then((mixHeaders) => Object.assign(config.headers || {}, mixHeaders))});return Promise.all(headerHandlers).then(() => config);
}, function (error) {// 对请求错误做些什么return Promise.reject(error);
});// 添加响应拦截器
service.interceptors.response.use(function (response) {// 对响应数据做点什么return response.data;
}, function (error) {// 对响应错误做点什么Message.error(error.message)return Promise.reject(error);
});// 创建请求
const USE_DATA_METHODS = ['POST', 'PUT', 'PATCH', 'DELETE'];
const createRequest = () => {const hostApi = {};apiArr.forEach(api => {hostApi[api.name] = (params) => {const method = api.method || "POST";const requestParams = USE_DATA_METHODS.includes(method) ? { data: qs.stringify(params) } : { params: params };return service({url: api.path,method,headers: {...api.headers},...requestParams,})}});return hostApi;
}const apis = createRequest();export default apis;

五、调用

封装完成后,在main.js里把接口挂到Vue上面

import apis from './request/http';
Vue.prototype.apis = apis;

然后页面里调用

vue2中axios封装相关推荐

  1. vue中axios封装请求

    执行 GET 请求 // 向具有指定ID的用户发出请求 axios.get('/user?ID=12345') .then(function (res) {console.log(res); }) . ...

  2. VUE2中axios的使用方法

    一,安装 npm install axios 二,在http.js中引入 import axios from 'axios'; 三,定义http request 拦截器,添加数据请求公用信息 1 ax ...

  3. axios get 某个参数是数组怎么传_Vue 中 Axios 的封装和 API 接口的管理

    我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护. 一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios ...

  4. 拦截器读post参数导致接口post请求报错_vue中Axios的封装和API接口的管理

    一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中.他有很多优秀的特性,例如拦截请求和响 ...

  5. $.post请求的参数在后台代码中得到为null_vue中Axios的封装和API接口的管理

    来源:愣锤 https://juejin.im/post/684490365288107214 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题,我们所要的说的axio ...

  6. router中获取vuex_Vue 中 Axios 的封装和 API 接口的管理

    (给JavaScript加星标,提升前端技能) 作者:愣锤 https://juejin.im/post/684490365288107214 如图,面对一团糟代码的你~~~真的想说,What F~U ...

  7. axios post object object_一套全面又有实际意义的axios封装+api管理方案

    [toc] 前言 功能点 此文主要是基于vuecli3项目中axios封装及api管理的实践记录及过程中的踩坑收获,功能基本都是根据工作中需求实现.需求背景是,在同一套请求配置下,实现以下主要功能: ...

  8. vue2中使用axios,以及axios拦截器的配置

    目录 一.vue2项目中如何实现异步请求 1.axios:是一个基于Promise的网络请求库.既可以在node.js(服务器端)使用,也可以在浏览器端使用 2.vue中的使用方法 ​ (2)引用方法 ...

  9. axios post body参数_Vue开发中的一些问题(axios封装)

    关于Vue开发的问题(axios封装) 在博客中查找vue的axios封装,发现其中案例还是很多的,自己项目中有些需求不够. 比如 1.Content-Type 请求头 application/x-w ...

最新文章

  1. js_加入收藏夹功能
  2. 60多套html5移动端模板_美容整形高保真移动端原型模板发布
  3. SAP CRM One Order函数CRM_Object_FILL_OW的设计原理
  4. 谁能给我讲讲原理——视频弹幕游戏!!
  5. Html调用窗口,等待HTML调用window.print()之前写窗口
  6. 每日一题:leetcode1006.笨阶乘
  7. 05-java向Neo4j添加节点及其关系
  8. 高通增加Adsp log( 三十)
  9. java修改硬盘序列号怎么查_硬盘序列号的查看方法,如果多块硬盘如何查是哪块块的哪块要换掉?...
  10. 高级软件测试人员考核指标,软件测试人员绩效考核详细-20210406011350.docx-原创力文档...
  11. 渥太华大学计算机科学博士,加拿大渥太华大学计算机科学CO-OP录取案例
  12. 数据分析面试记录1-5
  13. [unreal] 切换关卡
  14. 求证:原函数与逆函数具有相同的单调性
  15. 拼多多上架工具有哪些,拼多多产品上架流程详解
  16. 嵌入式Linux开发8——UART串口通讯
  17. String.contains()方法
  18. 高斯牛顿法----MATLAB实现
  19. UTC时间与北京时间相互转换
  20. 算法学习(动态规划)- 数塔问题

热门文章

  1. 京东评论接口,item_review - 获得JD商品评论接口接入参数解决方案
  2. Canvas 初试 先画个萌萌的五角星
  3. java二维数组输入_java 二维数组的输入输出问题
  4. python实现视频换脸_Python实现AI换脸功能
  5. Photoshop-消失点滤镜做透视图
  6. 用python画数学函数图像教程_使用Matplotlib 绘制精美的数学图形例子
  7. Mysql 联合索引(聚合索引)数据结构
  8. python画圆角矩形_Python图像库(PIL)绘图——带渐变的圆角矩形
  9. 考研英语 小作文模板
  10. 一元多项式求和的C++