Javascript 未调用jQuery回调
这是我脚本的一部分,它先打印9,然后打印98,但无法打印2。这表明jQuery中的回调函数未被调用。但是在此之前,我使用json_decode函数打印从php文件返回的json,json打印得非常好。我该如何调试它,我的意思是错误在哪里Javascript 未调用jQuery回调,javascript,jquery,json,Javascript,Jquery,Json,这是我脚本的一部分,它先打印9,然后打印98,但无法打印2。这表明jQuery中的回调函数未被调用。但是在此之前,我使用json_decode函数打印从php文件返回的json,json打印得非常好。我该如何调试它,我的意思是错误在哪里 $(document).ready( function() { alert(9); $('#charac').keyup( function() { alert(98); $.getJSON('myprg.php?q='+escape($('#charac'
$(document).ready( function() {
alert(9);
$('#charac').keyup( function() {
alert(98);
$.getJSON('myprg.php?q='+escape($('#charac').val()), function(data) {
alert(2);
这可能不是答案,但代码在这里的可视化效果更好 使用jQuery 1.5或更高版本是否也会失败
$(document).ready( function() {
alert(9);
$('#charac').keyup( function() {
alert(98);
var jqxhr = $.getJSON('myprg.php?q='+escape($('#charac').val()), function(data) {
alert(2);
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
});
});
或者这个:
$(document).ready( function() {
alert(9);
$('#charac').keyup( function() {
alert(98);
var jqxhr = $.getJSON('myprg.php?q='+escape($('#charac').val()), function(data) {
alert(2);
});
jqxhr.success(function() { alert("second success"); });
jqxhr.error(function() { alert("error"); });
jqxhr.complete(function() { alert("complete"); });
});
});
这可能不是答案,但代码在这里的可视化效果更好 使用jQuery 1.5或更高版本是否也会失败
$(document).ready( function() {
alert(9);
$('#charac').keyup( function() {
alert(98);
var jqxhr = $.getJSON('myprg.php?q='+escape($('#charac').val()), function(data) {
alert(2);
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
});
});
或者这个:
$(document).ready( function() {
alert(9);
$('#charac').keyup( function() {
alert(98);
var jqxhr = $.getJSON('myprg.php?q='+escape($('#charac').val()), function(data) {
alert(2);
});
jqxhr.success(function() { alert("second success"); });
jqxhr.error(function() { alert("error"); });
jqxhr.complete(function() { alert("complete"); });
});
});
使用$.ajax函数而不是getJSON,并使用错误回调来查看发生了什么
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
error: callback(jqXHR, textStatus, errorThrown)
});
使用Firebug或Chrome developer工具检查实际服务器响应并使用验证JSON也很有用,一些JSON库比其他库更宽容,并且忽略小错误。使用$.ajax函数而不是getJSON,并使用错误回调来查看发生了什么
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
error: callback(jqXHR, textStatus, errorThrown)
});
使用Firebug或Chrome developer工具检查实际的服务器响应并使用验证JSON也很有用,一些JSON库比其他库更宽容,并且忽略小错误。您知道服务器正在返回成功的响应吗?先确认一下。你可以用firebug调试它。如果您从未使用firebug进行调试,请查看教程before@BZink:Server正在返回一个非常好的有效JSON,我甚至验证了它。您是否使用JSON mime类型提供文件?@gillesc:header“Content-type:application/JSON;”;您知道服务器正在返回成功的响应吗?先确认一下。你可以用firebug调试它。如果您从未使用firebug进行调试,请查看教程before@BZink:Server正在返回一个非常好的有效JSON,我甚至验证了它。您是否使用JSON mime类型提供文件?@gillesc:header“Content-type:application/JSON;”;谢谢马里奥的帮助。Firebug打印以下内容:$.getJSONmyprg.php?q=+escape$charac.val,函数数据{alert2;}。错误不是函数[Break On this error]。errorfunction{alerterror;}您使用的是哪个jQuery版本?第二个例子有效吗?我是说,你有什么警觉吗?。这次萤火虫说:jqxhr.success不是一个函数[Break On This Error]jqxhr.successfunction{alertsecond success;}不,我在98Oh之后没有收到任何警报,好吧,这是因为你需要jQuery 1.5或更高版本才能使代码正常工作。重要提示:从jQuery1.4开始,如果JSON文件包含语法错误,请求通常会自动失败。因此,避免频繁手工编辑JSON数据。JSON是一种数据交换格式,其语法规则比JavaScript的对象文字表示法更严格。例如,JSON中表示的所有字符串,无论是属性还是值,都必须用双引号括起来。有关JSON格式的详细信息,请参阅。感谢Mario的帮助。Firebug打印以下内容:$.getJSONmyprg.php?q=+escape$charac.val,函数数据{alert2;}。错误不是函数[Break On this error]。errorfunction{alerterror;}您使用的是哪个jQuery版本?第二个例子有效吗?我是说,你有什么警觉吗?。这次萤火虫说:jqxhr.success不是一个函数[Break On This Error]jqxhr.successfunction{alertsecond success;}不,我在98Oh之后没有收到任何警报,好吧,这是因为你需要jQuery 1.5或更高版本才能使代码正常工作。重要提示:从jQuery1.4开始,如果JSON文件包含语法错误,请求通常会自动失败。因此,避免频繁手工编辑JSON数据。JSON是一种数据交换格式,其语法规则比JavaScript的对象文字表示法更严格。例如,JSON中表示的所有字符串,无论是属性还是值,都必须用双引号括起来。有关JSON格式的详细信息,请参阅。感谢您的帮助。我使用了您描述的方法,最后它将我的状态打印为200,我使用alertjgXHR.status打印了它&然后我打印了alertErrorSprown,这给了我以下消息:SyntaxError:JSON.parse:unexpected character最终解决了问题。非常感谢你在这件事上帮助我。谢谢你的帮助。我使用了您描述的方法,最后它将我的状态打印为200,我使用alertjgXHR.status打印了它&然后我打印了alertErrorSprown,这给了我以下消息:SyntaxError:JSON.parse:unexpected character最终解决了问题。非常感谢你在这件事上帮了我的忙。