Che*_*rae 34 jquery json playframework
我试图用jQuery和JSON预先形成一些基本操作.目前在jQuery接受来自我的播放框架应用程序的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'
});
Run Code Online (Sandbox Code Playgroud)
始终触发错误回调.它显示
错误... parsererror jQuery15001997238997904205_1298484897373未被调用
通过Firebug检查返回的JSON显示没有错误,各种JSON lint工具也验证.将dataType更改为"text"会调用成功.但我试图使用isUsernameAvailable调用作为jQuery验证插件的一部分,所以我需要它来返回有效的JSON.
ggu*_*erg 34
也许我误解了,但你不能设置dataTypeto text和JSON.parse()返回的数据吗?
success: function(data) {
data = JSON.parse(data);
// process data
},
Run Code Online (Sandbox Code Playgroud)
编辑添加一般商定的解决方案(以前只是评论):
我刚刚看了一下api.jquery.com/jQuery.ajax,看起来像jQuery 1.5,你可以进行各种类型的转换."多个空格分隔的值:从jQuery 1.5开始,jQuery可以将dataType从Content-Type标头中收到的内容转换为您需要的内容.例如,如果您希望将文本响应视为XML,请使用" text xml"for dataType." 也许你可以尝试"文字json".
Joh*_*ika 12
升级到jQuery 1.5后,我得到了同样的错误.事实证明我的问题是因为我也在使用jquery验证插件,它与jQuery 1.5不兼容.如果我删除了jquery验证插件,带有dataType json的$ .ajax()工作正常.
有关jquery验证插件不兼容性的更多信息,请访问:http: //bugs.jquery.com/ticket/8118