jQuery JSON响应总是触发ParseError

我试图用jQuery和JSON预制一些基本操作。目前很难从jQuery接受我的play框架应用程序的JSON响应。下面是仍然产生错误的代码的简化版本。

$.ajax({
    type: 'POST',
    url: "@{FrontEnd.isUsernameAvailable()}",
    data: "name=thisnameisavailable",
    cache: false,
    success: function(data) {
        console.log("Success... ");
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log("Error... " + textStatus + "        " + errorThrown);
    },
    dataType: 'json'
});

总是触发错误回调。显示

Error… parsererror jQuery15001997238997904205_1298484897373 was not called

通过Firebug检查返回的JSON显示没有错误和各种JSON Lint工具也验证。将dataType更改为“text”可以调用成功。但我想使用isUsernameAvailable调用作为jQuery验证插件的一部分,所以我需要它来返回有效的JSON。

最佳答案
也许我是误解,但你不能设置dataType为文本和JSON.parse()返回的数据?

success: function(data) {
    data = JSON.parse(data);
    // process data
},

编辑以添加一般同意的解决方案(以前仅评论):

我只是看看api.jquery.com/jQuery.ajax和它看起来像用jQuery 1.5你可以做一个类型转换的类型。 “多个,空格分隔的值:从jQuery 1.5开始,jQuery可以将dataType从Content-Type头部中接收到的数据转换为所需的值。例如,如果要将文本响应视为XML,请使用”文本xml“作为dataType。也许你可以尝试“文本json”。

转载注明原文:jQuery JSON响应总是触发ParseError - 代码日志