jQuery JSON响应总是触发ParseError

前端之家收集整理的这篇文章主要介绍了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相关文章