日期:2014-05-16  浏览次数:20625 次

jquery的ajax同时加载多个&.ajax的问题
var temp = $.query.get("temp");
var bid = ""; 
jQuery(function($){
$.ajax({
url:'../portal/program/TitleInfoService.j',
type:"POST",
data:"id=" + $.query.get("id") + "&temp=" + temp,
dataType:'json',   
success:function(data){


bid = data[0][0];
}
    });
    $.ajax({
url:'../portal/program/RDZTService',
type:"POST",
data:"rdzt=RDZT",
dataType:'json',   
success:function(data){ 

}
    });
   
     $.ajax({
url:'../portal/program/JBZLService',
type:"POST",
data:"jbzl=JBZL",
dataType:'json',   
success:function(data){ 

}
    });
     //刷新留言板信息
$.ajax({
url:'../portal/program/LYBServiceList',
type:"POST",
data:"bid="+bid,
dataType:'json',   
success:function(data){ 
var div = '';
for(i = 0; i < data.length; i++) {
div += '<hr/><ul><li>' + data[i][1] + '</li><li>' + data[i][2] + '</li></ul>';
}
$(".ly").html(div);
}
    });
    
});
打开页面后同时加载上面的代码,现在遇到这么个问题,定义了全局变量var bid如红色字体,在第一个ajax里面请求成功后会给bid赋值,可是在最后一个ajax里我通过data属性把bid传到LYBServiceList中,但是LYBServiceList中接受到的是空值,如果我在代码的注释部分如蓝色字体的下面加个alert("11");,传入的bid就有值,请教各位这个加载多个ajax并且共用一个全局变量该怎么解决,谢谢

------解决方案--------------------
获取bid的ajax改为同步的。。。因为异步的话ajax还没执行完毕给bid赋值就已经执行到使用bid的ajax请求了

   var temp = $.query.get("temp");
    var bid = "";
    jQuery(function ($) {
        $.ajax({
            url: '../portal/program/TitleInfoService.j',
            type: "POST",
            data: "id=" + $.query.get("id") + "&temp=" + temp,
            dataType: 'json',
            async: false,///////////////
            success: function (data) {
                bid = data[0][0];
            }
        });
        $.ajax({
            url: '../portal/program/RDZTService',
            type: "POST",
            data: "rdzt=RDZT",
      &nbs