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 密钥,这是正确的,optionsurl 设置正确。

我一直在琢磨这个。

任何想法从哪里开始故障排除?

【问题讨论】:

当服务器响应一个错误页面,即html,并且&lt;&lt;html&gt;标签中的第一个字符时,通常会发生此错误。打开 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 中。

【讨论】:

如果是这样,&lt; 是从哪里来的?而如果数据是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