You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在项目中一次性配置Axios的validateStatus函数?

如何全局配置Axios,避免重复传入相同参数?

你当前每次调用axios.post都要重复传入包含Content-Type和validateStatus的配置,想要一次性设置这些全局偏好,这里提供两种可行方案:

方案一:修改Axios全局默认配置

直接修改Axios的全局默认参数,所有后续请求都会自动继承这些配置:

import axios from "axios";

// 设置全局默认请求头
axios.defaults.headers.common['Content-Type'] = 'application/json';
// 设置全局validateStatus规则,所有状态码都视为成功响应
axios.defaults.validateStatus = () => true;

function doSomething() {
   const response = await axios.post(url, form);
}

function doSomethingElse() {
   // 若某请求需要覆盖全局配置,直接传入自定义options即可
   const customOptions = {
     // 比如临时修改validateStatus
     validateStatus: (status) => status >= 200 && status < 300
   };
   const response = await axios.post(url, form, customOptions);
}

方案二:创建自定义Axios实例(推荐)

如果不想污染全局Axios实例,可以创建独立配置的自定义实例,适合多场景/多模块的项目:

import axios from "axios";

// 创建带默认配置的自定义Axios实例
const apiClient = axios.create({
  headers: {
    'Content-Type': 'application/json'
  },
  validateStatus: () => true
});

function doSomething() {
   const response = await apiClient.post(url, form);
}

function doSomethingElse() {
   // 同样支持传入自定义配置覆盖实例默认值
   const customOptions = {
     headers: {
       'Content-Type': 'multipart/form-data' // 临时修改请求头
     }
   };
   const response = await apiClient.post(url, form, customOptions);
}

注意:Axios并没有axios.use()这个方法,你期望代码里的写法是错误的,上述两种方案是官方支持的全局配置方式。

内容的提问来源于stack exchange,提问作者1.21 gigawatts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:30:02