【问题标题】:Fetch request error while I can see the good result in the browser dev tool获取请求错误,而我可以在浏览器开发工具中看到良好的结果
【发布时间】:2021-10-04 10:57:54
【问题描述】:

我需要使用 JS 从 localhost 服务器获取 JSON 数据。

获取请求抛出错误:

未捕获(承诺中)语法错误:JSON.parse:JSON 数据的第 1 行第 1 列的数据意外结束

看起来答案是空的,但是当我打开浏览器开发工具时,我可以在网络部分看到 JSON 数据。

fetch(url, init)
 .then(res => res.json()) //return the error

fetch(url, init)
 .then(res => res.text()) //return an empty string

我在网络部分看到的结果格式正确,当我复制/粘贴它以手动使用 JSON.parse() 时,我得到了正确的结果。

【问题讨论】:

  • 查看控制台中是否有 CORS 错误 - 如果没有则显示 JSON 示例和
  • 我猜后端输出中有一些隐藏的警告。看看你收到的原始消息,你会发现问题
  • 您的后端很可能没有返回有效的 JSON。有时,如果您的 url 不正确并且后端或代理返回默认的未找到 html 页面,则会发生这种情况。尝试在浏览器的开发者工具中检查请求,看看你得到了什么响应。

标签: javascript json fetch


【解决方案1】:

你必须返回承诺,而不是等待:

const method = async() =>{
    return fetch(url, init)
     .then(res => res.json())
     .catch(err)=>{
       //manage error here
    }
}

比你做的:

method().then(res=>....)

更多信息请看这里:How to get data returned from fetch() promise?

【讨论】:

  • 谢谢,检查我的答案,我可能没有把它放在正确的地方对不起
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 2015-06-28
  • 1970-01-01
  • 2020-03-08
相关资源
最近更新 更多