Axios是一个基于Promise的HTTP客户端,它可以在浏览器和Node.js中使用。Axios可以帮助我们轻松地发送Ajax请求和处理响应数据,使用Axios发送请求,可以简化代码,提高开发效率。

以下是一个简单的Axios请求封装的示例:

import axios from 'axios';

// 设置默认请求配置
axios.defaults.baseURL = 'http://example.com/api';
axios.defaults.headers.common['Authorization'] = 'AUTH_TOKEN';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

// 封装请求函数
export const request = (config) => {
  // 创建实例
  const instance = axios.create({
    baseURL: axios.defaults.baseURL,
    timeout: 5000,
    headers: axios.defaults.headers,
  });

  // 请求拦截器
  instance.interceptors.request.use(config => {
    // 可以在此处添加请求loading等等
    return config;
  }, error => {
    return Promise.reject(error);
  });

  // 响应拦截器
  instance.interceptors.response.use(response => {
    // 可以在此处处理响应结果
    return response;
  }, error => {
    return Promise.reject(error);
  });

  // 发送请求
  return instance(config);
}

以上代码中,我们首先设置了默认请求配置,包括API的基本URL、请求头和超时时间等等。然后封装了一个请求函数,用来发送请求。在请求函数中,我们首先创建了一个axios实例,然后设置了请求拦截器和响应拦截器,在拦截器中可以添加一些共同的处理逻辑。

最后,我们调用实例的request方法发送请求,并返回一个Promise对象。在调用请求函数时,可以传入一个配置对象,包括请求方法、请求URL、请求参数等等。

使用封装好的请求函数,可以在Vue组件中这样调用:

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

export default {
  data() {
    return {
      list: [],
    };
  },
  mounted() {
    this.getList();
  },
  methods: {
    async getList() {
      try {
        const res = await request({
          method: 'get',
          url: '/list',
        });
        this.list = res.data;
      } catch (error) {
        console.log(error);
      }
    },
  },
};

在以上代码中,我们通过import语句引入了封装好的请求函数,然后在mounted生命周期中调用getList方法发送请求,并将响应结果赋值给组件的list属性。由于请求函数返回的是一个Promise对象,我们使用了async/await语法糖来处理异步操作。在请求过程中,如果出现了异常,我们可以在catch块中捕获并处理异常。

axios 封装请求

原文地址: https://www.cveoy.top/t/topic/b50j 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录