You need to enable JavaScript to run this app. Axios发起GET请求返回数据id全为0,Postman请求正常该如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Axios发起GET请求返回数据id全为0,Postman请求正常该如何解决?

排查步骤与解决方法

你可以按以下顺序定位问题,从你提供的信息来看Postman请求响应正常,问题大概率出在前端Axios请求处理到数据落地的环节:

  1. 优先排查Axios响应拦截器
    检查你是否在全局配置了Axios响应拦截器,常见的场景是拦截器中做字段统一转换、数据清洗、类型映射时,错误地将所有对象的id字段覆盖为了0,或者和其他同名变量冲突导致赋值错误。
  2. 校验响应解析逻辑
    先打印原始响应文本排除Axios自动解析JSON的问题,修改你的请求代码如下:
export const fetchNotifications = (id, key) => dispatch => {
  dispatch( fetchNotificationsStarted() );
  axios.get(uri + `/app/notifications/${id}?key=${key}`).then(result => {
    // 新增打印原始响应字符串,直接看接口返回的原始内容
    console.log("原始响应内容:", result.request.responseText);
    console.log("Axios解析后数据:",result.data);
    dispatch( fetchNotificationsSuccess(result.data) );
  }).catch(error => {
    dispatch( fetchNotificationsFailure(error.message) );
  });
}

如果原始响应字符串里的id值正常,说明是Axios的transformResponse配置或者拦截器篡改了数据;如果原始响应里id已经是0,检查你前端请求的头信息、参数是否和Postman完全一致,是否触发了后端的特殊逻辑。
3. 排查数据二次处理逻辑

  • 检查是否有自定义的类/构造函数对接收到的通知数据做实例化转换,构造函数中默认给id赋值为0
  • 检查Redux中间件是否有对FETCH_NOTIFICATIONS_SUCCEED类型的action做特殊处理,修改了payload的值
  • 确认你打印日志的时机,是否是后续其他action修改了notifications数组里的id字段
  1. 额外排查点
    检查是否使用了接口Mock工具、本地代理工具,这类工具可能会篡改响应内容,导致返回的字段不符合预期。

内容的提问来源于stack exchange,提问作者Joe's T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 15:54:04