Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未调用jQuery回调_Javascript_Jquery_Json - Fatal编程技术网

Javascript 未调用jQuery回调

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'

这是我脚本的一部分,它先打印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').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最终解决了问题。非常感谢你在这件事上帮了我的忙。