【问题标题】:JSON response format error - red dot\bullet before responseJSON 响应格式错误 - 响应前的红点\项目符号
【发布时间】:2014-05-07 07:20:39
【问题描述】:

我正在发送一个期望 JSON 响应的 AJAX 请求。 但是,返回的 JSON 前面有一个导致解析错误的红点\bullet。

这是Postman的截图:

点不显示在RawPreview 显示屏上,仅在Pretty 上显示。

在 Chrome 开发工具网络选项卡中,它出现在 Response 下。 Preview 正常显示,就好像点不存在一样。

【问题讨论】:

  • 在 Chrome 中,红点通常代表不可打印的特殊 unicode 字符。请检查您的服务器端代码以防止输出这些字符。
  • 为什么“XML”按钮被按下了?
  • 没关系。显示相同的 JSON 按钮
  • 好吧,如果 Web 服务器发送识别为 XML 的 JSON 并且您依赖于一些自动解析,那么这也可以解释问题。不管怎样,你明白 devnull69 的评论吗?
  • 是的。 @devnull69,你能发表你的评论作为答案吗?

标签: json google-chrome-devtools


【解决方案1】:

我在我的 ajax 响应中遇到了红点问题我尝试了很多解决方案,但在我尝试了 ob_clean() 函数之后对我不起作用我得到了解决方案 我在构造方法中使用 ob_clean() 解决了我的问题

function __construct()
{
    ob_clean();
}

【讨论】:

  • 向其他用户简要解释您的答案。
【解决方案2】:

正如之前评论中提到的:在 Chrome 中,红点通常代表不可打印的特殊 unicode 字符。

请检查您的服务器端代码以防止输出这些字符

【讨论】:

  • 这可能是使用记事本编辑远程文件导致的文件编码问题。我已经从本地主机重新上传了文件,它已经解决了。
  • Windows 记事本将 BOM 信息添加到 UTF-8 文件(即文件开头的 FFFE 或 FEFF),这可以解释这种行为。例如,在 Notepad++ 中,您可以使用“格式”菜单阻止 UTF-8 包含 BOM 信息
  • 备案:BOM = "Byte Order Marker"(允许阅读器识别文件以 UTF-8 编码的字节序列)。
【解决方案3】:

您需要清除服务器端的对象缓冲区。 我使用 PHP 作为我的服务器端语言,我遇到了类似的问题,解决方案是使用 ob_clean();

清理我的缓冲区

【讨论】:

    【解决方案4】:

    如果您的文件使用 UTF-8 编码,最好使用不带 BOM 的 UTF-8 进行编码。这可以通过记事本++轻松完成。步骤如下,

    1. 在 notepad++ 中打开文件。
    2. 转到文件菜单上的编码选项。
    3. 然后选择“转换为不带 BOM 的 UTF-8”选项。

    这可能会解决您的问题。

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,并通过将文件从 utf-8 转换为 utf-8 而没有 BOM 解决了这个问题

      【讨论】:

        猜你喜欢
        • 2016-05-20
        • 1970-01-01
        • 2015-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多