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

Axios请求返回undefined,Postman测试接口正常、React调用返回200无数据

问题根因

你当前的问题是同时混用了await和.then()链式调用,变量赋值逻辑出现错误:

  • 你把await axios.get(...).then(...)的返回值赋值给了response变量,但.then()回调如果没有显式return值,默认返回的是undefined
  • 你在.then()内部打印response的时候,这个变量的赋值逻辑还未完成(因为整个await后的链式调用还没执行结束),自然拿到的是undefined

修复方案

两种异步处理语法二选一即可,不要混用:

方案1:仅使用async/await语法(更推荐)

const submit = async (e: SyntheticEvent) => {
    e.preventDefault();
    try {
        const response = await axios.get('certificates', {
            params: { sponser },
        });
        console.log(response); // 此处可正常拿到完整响应内容
        alert(response.status);
        alert(response);
    } catch (err) {
        // 统一处理请求异常
        console.error('请求出错:', err);
    }
};

方案2:仅使用.then()链式调用语法

const submit = (e: SyntheticEvent) => {
    e.preventDefault();
    axios
        .get('certificates', {
            params: { sponser },
        })
        .then((res) => {
            console.log(res); // 直接在then回调内处理响应
            alert(res.status);
            alert(res);
        })
        .catch((err) => {
            console.error('请求出错:', err);
        });
};

额外验证点

调整语法后如果还是拿不到预期的业务返回数据,可以检查响应对象的res.data字段,axios会把接口实际返回的业务内容封装在data属性下,直接打印res拿到的是axios包装后的完整响应对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:24:04