chatGPT写的axios请求封装

217 阅读1分钟

  1. 安装axios库:在项目中使用npm安装axios。可以使用以下命令进行安装:
npm i axios -S

  1. 在src目录下创建一个新的文件夹(例如utils),并在其中创建一个名为request.js的文件。

  2. 在request.js中导入axios库,并创建一个新的axios实例:

import axios from 'axios'

   const service = axios.create({
     baseURL: process.env.VUE_APP_BASE_API,
     timeout: 5000 // 请求超时时间
   })

  1. 在新建的axios实例中可以设置一些默认值,例如baseURL和timeout等。其中,baseURL是我们请求的基础路径,timeout是我们设置的请求超时时间。

  2. 在request.js中可以设置一些请求和响应拦截器:

service.interceptors.request.use(
     config => {
       // 在请求发送之前做些什么
       return config
     },
     error => {
       // 对请求错误做些什么
       return Promise.reject(error)
     }
   )

   service.interceptors.response.use(
     response => {
       // 对响应数据做些什么
       return response.data
     },
     error => {
       // 对响应错误做些什么
       return Promise.reject(error)
     }
   )

   在请求拦截器中,我们可以在请求发送之前设置一些参数,例如请求头信息、Token等,以及格式化请求参数。

   在响应拦截器中,我们可以对响应数据进行一些处理,例如格式化响应数据、统一处理异常等。

  1. 导出新建的axios实例:
export default service

  1. 在Vue组件中导入已封装的axios实例,并使用它来发送请求: 
import request from '@/utils/request'

   request({
     url: '/user/login',
     method: 'post',
     data: {
       username: 'admin',
       password: '123456'
     }
   }).then(response => {
     console.log(response)
   })

   在这个例子中,我们使用request这个实例来向服务器发出登录请求。

通过以上步骤,我们可以把axios封装到业务模块中,方便复用。同时,我们可以通过拦截器对请求和响应进行处理,使得代码结构更加清晰,逻辑更加严谨。