axios 定义基础的 url

概述

在使用 axios 进行网络请求时,经常会遇到需要定义基础的 url 的情况。基础的 url 即请求的主机名和端口号部分,它在多个请求之间是相同的,可以通过定义基础的 url 来简化每个请求的 url 写法。本文将介绍如何使用 axios 定义基础的 url,并提供相关的代码示例。

使用 axios 定义基础的 url

axios 是一个基于 Promise 的 HTTP 客户端,可以用于浏览器和 Node.js 环境中发送 HTTP 请求。axios 提供了一个 create 方法,可以用来创建一个新的 axios 实例。通过这个方法,我们可以定义基础的 url。

以下是一个使用 axios 定义基础的 url 的示例:

import axios from 'axios';

// 创建一个新的 axios 实例,并定义基础的 url
const instance = axios.create({
  baseURL: '
});

// 发送 GET 请求
instance.get('/users')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

在上面的示例中,我们首先通过 import 语句引入了 axios 模块。然后,使用 axios.create 方法创建了一个新的 axios 实例,同时通过 baseURL 参数定义了基础的 url。在这个例子中,我们将基础的 url 设置为 GET 请求,请求的 url 为/users,实际的请求 url 为 then 方法获取到响应数据,通过 console.log 打印出来。如果请求出现错误,我们通过 catch 方法捕获,并通过 console.error 打印错误信息。

配置选项

除了 baseURL,axios.create 方法还可以接收一些其他的配置选项,用于对请求进行更细粒度的配置。

  • baseURL:定义基础的 url,请求的 url 会和它拼接起来。它可以是一个相对的或绝对的 url。默认值为 ''
  • timeout:定义请求超时的时间(单位:毫秒)。如果请求在指定的时间内没有完成,将会被中断。默认值为 0,表示无限制。
  • headers:定义请求头。它是一个对象,每个属性表示一个请求头字段。默认值为 {}
  • params:定义 GET 请求的查询参数。它是一个对象,每个属性表示一个查询参数。默认值为 {}
  • data:定义 POST 请求的请求体。它是一个对象,每个属性表示一个请求体字段。默认值为 null
  • withCredentials:定义是否发送跨域请求时携带凭证。默认值为 false
  • transformRequest:定义请求发送前对请求数据的转换函数。它是一个数组,每个元素是一个转换函数。默认值为 [defaultTransformRequest]
  • transformResponse:定义请求返回后对响应数据的转换函数。它是一个数组,每个元素是一个转换函数。默认值为 [defaultTransformResponse]
  • paramsSerializer:定义对 GET 请求的查询参数进行序列化的函数。默认值为 defaultParamsSerializer
  • onUploadProgress:定义上传进度的回调函数。它是一个函数,接收一个参数 progressEvent,该参数包含上传进度的信息。
  • onDownloadProgress:定义下载进度的回调函数。它是一个函数,接收一个参数 progressEvent,该参数包含下载进度的信息。
  • validateStatus:定义对响应状态码进行验证的函数。它是一个函数,接收一个参数 status,该参数为响应状态码,必须返回一个布尔值。默认值为 status => status >= 200 && status < 300

以上只是一部分常用的配置选项,更多的配置选项请参考 axios 的官方文档。

实际应用

在实际应用中,我们通常会将基础的 url 配置为一个全局的变量,在多个请求中复用。这样可以避免在每个请求中都写上完整的 url,提高代码的可维护性。

下面是一个更实际的例子:

import axios from