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

NextJS前端如何获取API返回的响应数据?

Next.js API响应获取问题解决办法

你看不到返回的John Doe,核心原因是fetch API和axios的处理逻辑不一样:

  • axios会自动把后端返回的JSON响应解析成JavaScript对象,直接通过response.data就能访问数据;
  • 但fetch返回的是一个Response对象,这个对象只包含响应的元信息(比如状态码、请求头),你必须手动调用response.json()方法,才能把响应体的JSON数据解析成可直接使用的JS对象。

修改后的前端调用代码

链式then写法:

useEffect(() => {
    fetch("/api/hello", { method: "GET" })
        .then(response => response.json()) // 关键:解析JSON响应体
        .then(data => {
            console.log(data); // 输出 { name: 'John Doe' }
            console.log(data.name); // 输出 John Doe
        })
        .catch(error => console.error("请求失败:", error));
}, []);

async/await写法(更易读):

useEffect(() => {
    const fetchApiData = async () => {
        try {
            const response = await fetch("/api/hello", { method: "GET" });
            const data = await response.json(); // 解析JSON
            console.log(data);
        } catch (error) {
            console.error("请求出错:", error);
        }
    };

    fetchApiData();
}, []);

这个差异和Next.js无关,不管是在Next.js还是Create React App中使用fetch,都需要手动执行JSON解析步骤——之前在CRA里用axios能直接拿数据,只是因为axios帮你做了解析这一步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:25:24