Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
jqueryajax函数奇怪的行为_Jquery_Ajax - Fatal编程技术网

jqueryajax函数奇怪的行为

jqueryajax函数奇怪的行为,jquery,ajax,Jquery,Ajax,我这里有一个相当奇怪的场景,希望有人能有所了解 我有这个功能: function get_jsonp(data){ $.ajax({ dataType: 'jsonp', data:data, jsonpCallback:'pr', url:'http://example.com/api/' }); //alert("test"); } $("a").live('click',function(e){ $

我这里有一个相当奇怪的场景,希望有人能有所了解

我有这个功能:

function get_jsonp(data){
    $.ajax({
        dataType: 'jsonp',
        data:data,
        jsonpCallback:'pr',
        url:'http://example.com/api/'
     });
//alert("test");
}

$("a").live('click',function(e){
    $("#dialog").show();
    $(".hideable").hide();
    window.location = $(this).attr('href');
    info = get_info();
    get_jsonp(info,'pr');
});
在jQuery1.4.1中,这一点一直很好

在jQuery1.7.1下,第一次调用它时没有问题,然后当我单击调用它的项时,我没有得到任何结果,但是如果我取消对该警报的注释,它会正常工作


有什么想法吗?

一旦将
ajax
帖子提交到服务器,如果您使用的是同步请求,那么该方法就会退出。发生的情况是,在ajax调用实际完成之前执行
get\u jsonp()
之后的代码。通过使用
警报()
,您可以在方法退出之前添加足够的时间来完成调用

不幸的是,
jsonp
不支持同步请求

考虑使用该方法,或者,如果可以在
get_jsonp
方法中执行后续代码,则捕获以下事件之一:

function get_jsonp(data){
    $.ajax({
        dataType: 'jsonp',
        data:data,
        jsonpCallback:'pr',
        url:'http://example.com/api/',
        success: function(){
            // Do something when successfully complete.
        }
    });
}

请描述“单击调用它的项目”我不明白,您可能已经使用
window.location=$(this.attr('href')导航离开了页面当你想启动ajax调用时…我只是想在url栏中设置它所说的内容,而不去任何地方。我明白你的意思,但是。。。这并不能解释为什么它在1.4.1中工作得很好,jsonpcallback不应该在运行所有after的地方吗from@mcgrailm字体这可能只是巧合。这或1.4.1支持同步调用。删除回调并使用success方法修复了此问题,感谢您的帮助