【问题标题】:Parsing JSON on Firefox vs. Chrome (error: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data)在 Firefox 与 Chrome 上解析 JSON(错误:JSON.parse:JSON 数据的第 1 行第 1 列的数据意外结束)
【发布时间】:2021-03-22 11:08:06
【问题描述】:

我使用 twitter API 在 node.js 和 javascript 中构建了一个小型应用程序,该应用程序从用户那里获取关键字输入,然后使用该关键字显示一些最近的推文。

它在所有浏览器的 localhost 中都能正常工作。但是当我部署到 Heroku 时,它只能在 Chrome 中运行。

在 Firefox 中,我收到以下错误:Uncaught (in promise) SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

我收到了一个精简的推文数组,其中数组中的每个元素都采用类似 {"text": "this is a tweet", "user": "@username", "url": "twitter .com/this-tweet"}。这是我在其上完成 JSON.stringify 的数组本身。

所以我的问题特别是我可能需要做些什么来解决这个问题,但更一般地说,我很好奇为什么我的 JSON 解析在 Chrome 上可以正常工作,但在 Firefox 上却不行。

【问题讨论】:

  • 请粘贴您的代码

标签: javascript node.js json heroku fetch


【解决方案1】:

如果您查看错误消息,您会发现它在第一个字符上被捕获,这意味着提供给 JSON.parse() 的字符串甚至没有以有效字符开头,例如 " {"。尝试注销服务器返回给您的内容 - 这样您可能会很快找到问题。

如果您使用 fetch,一个可能的情况是服务器实际上正在返回一个错误(带有 4xx 或 5xx 状态代码的东西)。 fetch() 不会抛出状态码错误,只会抛出网络错误,因此如果您没有正确检查错误代码,您可能会尝试将错误消息解释为 JSON 数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2020-04-21
    • 2016-01-30
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    相关资源
    最近更新 更多