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方法修复了此问题,感谢您的帮助