javascript - JSON - 语法错误 : Unexpected token &

标签 javascript jquery ajax json

当我返回提交 API 的 AJAX 表单的值时,我得到:

SyntaxError: Unexpected token &

AJAX 响应处理如下所示:

$(document).ready ->
  $(".edit_code_lesson").on("ajax:success", (e, data, status, xhr) ->
    result = JSON.parse(data)
    alert(result);
  ).bind "ajax:error", (e, xhr, status, error) ->
    console.log(status + '\n ' + error);
    console.log(xhr);

查看 xhr 中的 responseText 后,我可以看到响应是:

"{"stdout"=>"2\n", "stderr"=>"", "wallTime"=>237, "exitCode"=>0}"

我是 HTML 的新手,所以我不确定响应是否应该是 HTML 格式。我该如何解决这个问题?

注意:这是一个使用 API 包装器的 Rails 应用程序。

最佳答案

即使更正了 HTML 实体*,那仍然不是 JSON。它看起来像这样:

{"stdout"=>"2\n", "stderr"=>"", "wallTime"=>237, "exitCode"=>0}

而 JSON 看起来像这样:

{"stdout": "2\n", "stderr": "", "wallTime": 237, "exitCode": 0}

您需要修复此问题的服务器端,以便:1. 它不进行 HTML 编码,以及 2. 它确实输出 JSON,而不是类似 PHP 的语法. (如果您使用的是 PHP,则可以使用 json_encode 输出 JSON。)


(* 通常情况下,您不会对 JSON 进行 HTML 编码。您唯一可能这样做的情况是,如果您在 HTML 页面中给出一个 JSON 示例,并希望确保它看起来像正确 [就像任何其他文本]。)

关于javascript - JSON - 语法错误 : Unexpected token &,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761390/

相关文章:

javascript - 数据表未捕获类型错误

javascript - 如何将 JQuery $.post 中的值保存到 Javascript 全局变量

javascript - 如何在dom中存储和追加大字符串

javascript - 如何用ajax改变中间内容

JQuery Accordion Ajax 高度问题

javascript - 避免从对象运行函数

javascript - mapStateToProps 应该异步更新 props 吗?

javascript - 防止在 iOS 设备上缩放时出现锯齿 SVG 元素

javascript - 如何通过每个属性并测试值?

javascript - 在客户端解决此问题的正确技术?