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

如何在Axios的Promise捕获器中获取Express的JSON响应?

如何通过Axios获取Express 403响应中的JSON数据

首先先帮你纠正一个小细节:你的Axios GET请求参数写法有问题,GET请求的查询参数需要放在params配置项里,不然后端大概率接收不到email参数,会影响判断逻辑。

回到你的核心问题——Axios在捕获403这类非2xx状态码的错误时,依然能拿到后端返回的JSON响应,只是数据不在then的result里,而是藏在catch的错误对象的response.data属性中。

修改后的完整调用代码如下:

axios.get('/is-unique-email', { params: { email } })
  .then(result => {
    // 处理200成功响应
    console.log('邮箱是否唯一:', result.data.unique);
  })
  .catch(err => {
    // 先判断是否存在响应对象(比如网络错误时就没有response)
    if (err.response) {
      // 这里就能拿到403返回的JSON错误信息
      console.log('错误提示:', err.response.data.email);
      // 也可以直接获取状态码做判断
      console.log('响应状态码:', err.response.status);
    } else {
      // 处理无响应的情况,比如网络断开、请求超时
      console.log('请求失败:', err.message);
    }
  });

补充说明:

  • Axios默认会把所有HTTP状态码不在2xx范围内的请求触发catch回调,但这些请求其实已经收到了后端的响应,所以错误对象里会包含response属性,其中data就是后端返回的JSON内容。
  • 务必把GET请求的参数放到params字段中,否则你的后端路由无法获取到email参数,也就无法正确执行邮箱唯一性的判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:52:37