axios 封装

项目中使用 axios 发送 HTTP 请求时,可以将其进行封装以方便使用和统一管理。以下是一个示例的 axios 封装方法:

import axios from 'axios';

// 创建 axios 实例
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // 配置请求根路径,这里使用 .env 文件管理环境变量
  timeout: 5000 // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么,比如添加 token、设置 Content-Type 等
    config.headers['Content-Type'] = 'application/json';
    return config;
  },
  error => {
    // 处理请求错误
    console.error(error);
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  response => {
    // 对响应数据做些什么,比如处理错误码、解析数据等
    const res = response.data;
    if (res.code !== 200) {
      console.error(res.message || '请求失败');
      return Promise.reject(new Error(res.message || '请求失败'));
    } else {
      return res.data;
    }
  },
  error => {
    // 处理响应错误
    console.error(error);
    return Promise.reject(error);
  }
);

// GET 请求
export function get(url, params) {
  return service.get(url, { params });
}

// POST 请求
export function post(url, data) {
  return service.post(url, JSON.stringify(data));
}

这里对 axios 进行了如下封装:

  1. 配置了基本的请求根路径和超时时间,并创建了一个 axios 实例 service
  2. 定义了请求拦截器和响应拦截器,用于在每个请求前加上一些通用的配置或对响应数据进行处理。
  3. 将 GET 和 POST 请求分别封装成 get 和 post 函数,以方便使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值