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

Next.js中getStaticProps调用API返回200OK但无数据问题

解决Next.js getStaticProps中axios请求返回数据找不到的问题

核心原因与解决方案

你现在打印的是原生浏览器Response对象,而非axios封装后的响应结构,要么是没找对数据位置,要么是axios未正常工作。

1. 正常axios响应的数据位置

如果axios正常运行,请求返回的数据会存放在res.data属性中,直接打印该属性即可获取:

export const getStaticProps = async () => {
  const config = {
    headers: { Authorization: 'Bearer xxxxxxx'}
  }

  const res = await axios.get('https://wookie.codesubmit.io/movies', config)

  // 打印实际返回的业务数据
  console.log(res.data)

  return {
    props: { movies: res.data }
  }
}

2. 出现原生Response对象的排查方向

若上述方法无效,说明axios未正确处理请求,可按以下步骤排查:

  • 确认axios的导入与安装:
    确保文件顶部有import axios from 'axios',并且已通过npm install axios完成依赖安装。
  • 升级axios版本:
    老旧版本axios在Next.js服务端环境可能存在兼容性问题,执行命令升级到最新版:
    npm update axios
    
  • 替换为fetch API(备选方案):
    如果axios仍异常,可直接使用原生fetch手动解析响应:
    export const getStaticProps = async () => {
      const res = await fetch('https://wookie.codesubmit.io/movies', {
        headers: { Authorization: 'Bearer xxxxxxx'}
      })
      // 解析JSON格式的响应体
      const data = await res.json()
      console.log(data)
    
      return {
        props: { movies: data }
      }
    }
    

3. 额外检查项

  • 确认Authorization头中的token与Postman中完全一致,无拼写错误或多余空格;
  • 响应头已显示content-type为application/json,这部分无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:36:09