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

如何配置Axios,使其在响应码为500或非200时不抛出错误?

让Axios不对非200状态码抛出错误的解决办法

Axios 默认会在响应状态码不在 200-299 范围内时抛出错误,你可以通过修改 validateStatus 配置项改变这个行为,让它不再为非200状态码抛出错误,完全交由你自己处理。

两种配置方式:

  1. 全局配置(所有请求生效)
    在项目初始化Axios的地方添加以下代码,之后所有请求都不会因状态码抛出错误:

    axios.defaults.validateStatus = () => true;
    
  2. 单次请求配置(仅当前请求生效)
    如果只想针对某一个请求修改规则,可以在请求参数里单独配置:

    var result = await axios.post(url, data, {
      headers: headers,
      validateStatus: () => true
    });
    var data = result.data;
    

后续处理示例

配置完成后,你可以直接通过响应对象的 status 字段判断请求结果,不用再用try-catch捕获状态码相关的错误:

var result = await axios.post(url, data, {
  validateStatus: () => true
});

if (result.status === 200) {
  // 登录成功逻辑
  console.log("登录成功", result.data);
} else if (result.status === 500) {
  // 登录失败逻辑
  console.log("登录失败", result.data);
}
// 其他状态码的处理逻辑

这样你的代码就能回到最初的简洁形式,try-catch只需要处理网络异常、语法错误这类真正的代码错误即可。

内容的提问来源于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.22 00:52:40