封装Axios

本文介绍了如何在Vue项目中安装并使用axios插件,实现动态配置baseURL和请求头,以及创建自定义请求类和初始化方法。通过示例展示了如何在detail模块中调用API接口并传递参数。
摘要由CSDN通过智能技术生成

1、安装axios插件

npm i axios

2、根据项目需求:比如一个项目使用多个后端服务 那么baseURL需要动态传入,或者不同的请求设置不同的请求头字段

src/utils/request.js

import axios from 'axios';

class Request {
  constructor(props) {
    this.init(props);
  }
  init(props) {
    let servicesParams = {
      baseURL:
        props && props.baseURL ? props.baseURL : process.env.VUE_APP_BASE_API,
      timeout: props && props.timeout ? props.timeout : 10000,
      // 跨域用   请求头带cookie
      withCredentials: props && props.withCredentials === false ? false : true,
      headers: {
        'Content-Type':
          props && props.ContentType
            ? props.ContentType
            : 'application/json;charset=utf-8',
        'uniplatform': props && props.uniplatform ? props.uniplatform : 'NBPT',
      },
    };
    // 创建axios实例
    const service = axios.create(servicesParams);
    service.interceptors.request.use(
      async function (request) {
        return request;
      },
      function (error) {
        return Promise.reject(error);
      }
    );
    service.interceptors.response.use(
      (response) => {
        if (response.status === 200) {
          return response.data;
        }
        Promise.reject();
      },
      (error) => {
        return Promise.reject(error);
      }
    );
    this.service = service;
  }
}
class RequestInit extends Request {
  init(props) {
    super.init(props);
    return this.service;
  }
}
const request = new Request().service;
const requestInit = new RequestInit();

export { request, requestInit };

3、使用举例

src/api/modules/detail.js

import { requestInit } from '@/utils/request.js';

let servicesRefParams = {
  baseURL: process.env.VUE_APP_BASE_NXGP_API,
  uniplatform: 'CREF',
};
let request1 = requestInit.init(servicesRefParams);

export function getRefReleased(val) {
  return request1({
    url: process.env.VUE_APP_VERSION + `/resources/released`,
    method: 'GET',
    headers: {
      version: val,
    },
  });
}

页面调用:

import { getRefReleased} from '@/api/modules/detail.js';

getRefReleased('xxx');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值