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

在Axios中如何捕获浏览器网络面板显示的响应错误体内容?

axios 0.21.1版本400错误响应体捕获方案

问题原因

你在catch回调中拿到的入参是Axios的错误实例对象,不是直接的HTTP响应对象。对于400这类已经收到服务端返回的错误,实际响应内容挂载在错误实例的response属性下,直接访问error.data自然会返回undefined。

正确写法

axios.post(`/api/myendpoint`,
  { 
    data: 2
  },
  {
    headers: {'ACCEPT': 'application/json'}
  })
  .then(response => {
    // 正常响应处理逻辑
  })
  .catch(error => {
    // 优先判断是否存在服务端返回的响应
    if (error.response) {
      // error.response的结构和then回调中拿到的response完全一致
      console.log(error.response.data); 
      // 按你给出的返回结构,提取错误提示的写法:
      const errMessage = error.response.data.data[0]
      console.log(errMessage) // 输出: value does not allow numbers
    } else if (error.request) {
      // 请求已发出但未收到响应的场景,比如网络超时、跨域拦截
      console.log('无响应返回:', error.request)
    } else {
      // 请求未发出的场景,比如配置参数错误
      console.log('请求发起失败:', error.message)
    }
  })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:15:03