Next.js 中的 JSON 输入意外结束

Posted

技术标签:

【中文标题】Next.js 中的 JSON 输入意外结束【英文标题】:Unexpected end of JSON input in Next.js 【发布时间】:2021-07-03 08:25:24 【问题描述】:

我正在从 /api/notes/1 获取数据并收到此信息:


"id":1,
"author":1,
"title":"Pierwsza notka",
"excerpt":"Taka tam notka, bla bla bla",
"body":"Pirwsza notka elo",
"private":1,
"created_at":"2021-04-07T12:59:59.000Z",
"updated_at":"2021-04-07T12:59:59.000Z"

这很好,花花公子,但是当我将它传递给 Next 的 getStaticProps 时:

export async function getStaticProps( params ) 
  const res = await fetch(`$config.apiURL/notes/$params.id`);
  const post = await res.json();

  return  props:  post  ;

它返回一个错误:

FetchError: invalid json response body at http://localhost:3000/api/notes/1 reason: Unexpected end of JSON input

这是怎么回事?

【问题讨论】:

您是否在浏览器“网络”开发者工具中查看过实际的 HTTP 响应正文是什么样的? 检查您的网络控制台:请求实际上是否正确通过,响应是否是上面的 JSON 对象? 您可以尝试将const post = await res.json(); 切换为const post = await res.text() 和console.logging 帖子吗? @JohanLindskogen 当res.text() post 只是一个空字符串。奇怪的是,在 Chrome Devtools 控制台中运行它时提取很顺利。 @Pointy @Chloe_Anderson 另外,请求不在网络选项卡中。 【参考方案1】:

问题是我的错。提取返回 401 Unauthorized with no body。

【讨论】:

以上是关于Next.js 中的 JSON 输入意外结束的主要内容,如果未能解决你的问题,请参考以下文章

执行 mochawesome-merge 时出现“JSON 输入意外结束”

json.decode() 输入意外结束(在字符 1 处)

Angular 2/Web Api - json 解析错误语法错误意外结束输入

json输入意外结束反应[重复]

Golang json Unmarshal “JSON 输入意外结束”

JSON解析错误语法错误意外结束输入