当我返回提交 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/