移动端axios封装

在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库。axios文档参考axios文档。
(1)安装axios依赖
npm install axios --save;
(2)配置axios
在src/uitls文件下新增uitls文件夹,文件夹内新增request.js文件,在这里我们对axios进行初始化后,暴露给需要引用的文件,方便开发。

import axios from "axios";
import qs from "qs"; //按需引入qs模块处理参数
//创建axios实例,并进行配置
const instance = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // 环境变量文件内配置的接口服务地址
  timeout: 20000
});
//请求拦截
instance.interceptors.request.use(
  config => {
    // 这里可以自定义一些config 配置,根据项目实际情况更改
    let method = config.method.toUpperCase() ;
    if(method==='GET'){ // eg.针对get请求加时间戳防止缓存,
      /**添加时间戳,防止ie有缓存*/
      const data = Object.assign(config.params || {}, {
        time: new Date().getTime()
      });
   }
    return config
  },
  error => {
    return Promise.reject(error);
  }
);
//响应拦截
instance.interceptors.response.use(
  function(response) {
    let res = response.data;
    // 这里处理一些response 正常放回时的逻辑
    //eg.下方为示例返回数据结构,根据项目实际情况更改
    if (res.success === false) {
      const result = { //自定义错误提示数据结构
        code: 500,
        msg: res.msg
      };
      showErr(result);
      return Promise.reject(res);
    } else if (res.success === true) {
      return res.data;
    }
    return res
  },
  function(error) {
    showErr(error);
    return Promise.reject(error);
  }
);
//错误信息处理
function showErr(error) {
  // 此处可以处理公共错误提示
  console.log(error)
}
export default instance;

(3)api请求配置
在src/下新建api文件夹,新建分类的api请求文件。根据具体需要分类。主要是方便团队开发,容易归类。可以参考下面配置。

import request from "@/utils/request";
/**获取员工基本信息
 * @see http://xxxx/project/175/interface/api/25493
 */
const queryUser = () =>
  request.get(
    "/xx/xx/xx?service=stewardMakeBadge&method=queryUser"
  );
 
export default {
  queryUser
};
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值