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

为什么替换fetch为axios后返回值不正确,控制台打印undefined?

问题根因

你对axios返回的响应对象结构理解有误,axios并没有提供response.json属性,自然取不到值。

  • fetch返回的原始响应对象需要调用await response.json()手动解析JSON数据,拿到的才是后端返回的业务数据
  • axios会自动解析JSON响应,后端返回的业务数据直接存放在响应对象的data属性中,不需要额外调用解析方法
修正后代码
async componentDidMount() {        
    console.log('app mounted');

    const tokenString = sessionStorage.getItem("token");
    const token = JSON.parse(tokenString);

    const response = await axios({
        method: 'get',
        url: Config.apiUrl + `/api/Orders/GetAllInvoices`,
        headers: {
            "Accept": "application/json",
            "Content-Type": "application/json",
            'Authorization': 'Bearer ' + token.token 
        }
    });
    // 直接取response.data即可拿到解析完成的业务数据
    console.log(`axios: `, response.data)
    this.setState({ invoiceList: response.data });
}

如果需要排查响应异常,可先打印完整的response对象,确认返回结构是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:57:05