JSON.parse() Error SyntaxError: Unexpected token < in JSON at position 0
Posted
技术标签:
【中文标题】JSON.parse() Error SyntaxError: Unexpected token < in JSON at position 0【英文标题】: 【发布时间】:2022-01-04 06:40:38 【问题描述】:我正在关注全栈 webdev 上的这个 udemy 课程。到目前为止很有趣,直到我遇到了这个障碍。
本课是关于 API 和 JSON 的,我们正在使用 Mailchimp API 制作“注册”电子邮件服务。
我有以下常量:
当使用 nodemon 时,这是我得到的错误:
app.js 43:24 指向:
console.log(JSON.parse(data));
线。
我检查了我的 api 密钥,这是正确的,options
和 url
设置正确。
我一直在琢磨这个。
任何想法从哪里开始故障排除?
【问题讨论】:
当服务器响应一个错误页面,即html,并且<
是<html>
标签中的第一个字符时,通常会发生此错误。打开 DevTools 中的 Network 选项卡,检查实际响应的内容。
首先,假设整个响应到达一个data
事件是不安全的。这可能是部分响应,您需要在解析之前累积所有数据事件。其次,一个简单的console.log(data)
在你解析它之前会告诉你你得到了什么。这是一个基本的调试步骤,应该在您在此处发布之前完成。
阅读How to Ask - 您希望通过在这里提问来获得免费帮助,您在提问之前通过检查所有可能的内容进行尽职调查是礼貌的。您的尽职调查的一部分应该是搜索是否有其他人遇到过类似的问题,如果您在此处搜索 json.parse syntax error,这将为您提供 396 个结果以检查可能的解决方案。您的问题中没有证据表明您进行了任何研究;你的问题的读者不是心灵感应的,所以只能假设如果你没有提到你没有做过任何研究。去图吧。
@SomeRandomDude Stack Overflow 适合每个程序员。但是,我们希望您在此处发布问题之前具备一定的编程知识,否则您肯定会问到一个之前已经问过的主题。请注意,Stack Overflow 不是帮助台或个人辅导系统。
请将代码和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。除了代码格式的文本之外,只有在图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容时,才应该使用图像。
【参考方案1】:
您不需要 JSON.parse(data) 它,因为 data 已经在 JSON 中。
【讨论】:
如果是这样,<
是从哪里来的?而如果数据是JSON,则需要解析成JS。【参考方案2】:
if(data != null)
console.log(JSON.Parse(data);
检查数据。
【讨论】:
请解释一下他为什么要测试数据,仅仅说“检查数据”并不能帮助他找出问题所在和原因。【参考方案3】:您能否执行一次console.log(data)
并验证data
不是undefined
。
如果我们执行JSON.parse(undefined)
,我们会得到与您得到的相同的错误。你可以放一个if
块,看看data
是不是undefined
,然后选择性解析。
【讨论】:
以上是关于JSON.parse() Error SyntaxError: Unexpected token < in JSON at position 0的主要内容,如果未能解决你的问题,请参考以下文章
JSON parse error: Invalid UTF-8 解决办法系列
JSON.parse() Error SyntaxError: Unexpected token < in JSON at position 0
Requests库发送post请求,传入接口参数后报JSON parse error
JSON parse error: Unexpected character ('a' (code 97))
Eclipse 解决JSON parse error: Invalid UTF-8 总结 完善
JSON parse error: Cannot deserialize instance of `java.util.ArrayList