jquery中post嵌套问题

项目中使用post嵌套,结果出现外层post先执行,内层post后执行。

解决方法:设置全局async

$.ajaxSetup({ 
                async : false 

        });


$.post(getUrl, {
f: f
}, function(datas) {
if(datas != null) {
var sTabFloor = eval("(" + datas + ")");

$.each(sTabFloor, function(keys, vals) {

sHtml+='<div class="floor"><span>'+vals['c_name']+'</span>';

   //默认显示数据
$.post(getFl,{f:vals['c_id']},function(resData){
if(resData!=null){

//解析并追加数据
var sFlH = eval("(" + resData + ")");
$.each(sFlH,function(k,v){
sHtml+="<span onclick='getDetails('"+v['h_id']+"')'>"+v['h_name']+"</span>";

});
console.log(sHtml);

}

});
s=false;
sHtml+="</div>";
// console.log(sHtml);

});

}
});

$(sHtml).appendTo(".content");



最后,附上网上搜索来的$.ajax请求,如果要嵌套的话,一定要使用这种

   $.ajax({ 
        url:url, 
        type:'post', 
        data:{'type':b_type,'moneyCount':moneyCount,'shoplen':shoplen}, 
        timeout:15000, 
        // 请求发送之前(发送请求前可修改XMLHttpRequest对象的函数,如添加自定义HTTP头。)。
        beforeSend:function(XMLHttpRequest){
            $("#doing").html("正在处理,请稍后···"); 
        }, 
        // 请求成功后的回调函数
        success:function(data,textStatus){
            var result = JSON.parse(data);
            if(result.code ==  1){
                $('#qr_code').show(1500);
                $('#qr_code').attr('src',result.data);
                $('.payment_but').hide();
            }else{
                alert(result.msg);
            }
        },
        // 请求完成后的回调函数 (请求成功或失败之后均调用)
        complete:function(XMLHttpRequest,textStatus){


            $("#doing").empty(); 
        }, 
        // 请求失败时调用此函数。
        error:function(XMLHttpRequest,textStatus,errorThrown){
            $("#doing").empty(); 
        } 
    }); 












猜你喜欢

转载自blog.csdn.net/feifantiantang/article/details/79842289
今日推荐