Axios 错误模型

Axios 如何区分响应错误、请求错误和配置错误,以及 validateStatus 的作用。

#type / concept #status / growing #tech / network #platform / browser #resource / http #resource / javascript #package / axios

[!info] related notes

Axios 错误模型

一句话定义

Axios 的错误大致分成三类:服务器返回了响应、请求发出但没有响应、请求在配置阶段就失败。

核心内容

1. error.response

说明请求已经发出,服务器也返回了响应,但状态码不在你认为的成功范围内。

2. error.request

说明请求发出去了,但没收到响应。常见于网络、跨域、服务端无响应。

3. 初始化/配置错误

说明错误发生在请求真正发出之前,比如参数拼错、拦截器抛错、序列化失败。

validateStatus

它可以重写“哪些 HTTP 状态码算成功”。这会直接影响哪些响应进入 then,哪些进入 catch

toJSON()

错误对象可以转成更适合日志/上报的结构。

边界与易混淆点

  • 4xx/5xx 是否算失败,不只看 HTTP 本身,还看 validateStatus
  • Axios 默认会把非 2xx 当成错误
  • responserequest 不会同时都没有逻辑意义

最短记忆方式

  • response:服务端回了
  • request:请求发了但没回
  • 都没有:请求配置阶段就挂了
创建于 2026/4/7 更新于 2026/4/9