今天做了个东西,在提交数据走后台返回到前台的ajax中后,在success函数中需要继续走后台逻辑,这时候就要在ajax中嵌套一个ajax,其实逻辑上没什么不同,只需要注意一点就行,在ajax中有一个async属性,这个值一定要设置成false,ajax默认的async是true。

async:异步属性,如果是true的话,嵌套的ajax也会异步(和外层的ajax同时)执行,这时候可能会造成数据没有获取到,或者获取到错误的数据信息,造成异常。

来一段代码示例

$.ajax({			        	url:'${webroot}/wachatWaybill/checkSite',
async : false,
type:'post',
dataType:'json',
data:{'a':a,'b':b,'c':c},
success:function(data){                                                                  
    $.ajax({
        async : false,  
        url:'${webroot}/wachatWaybill/updateStatus',
        type:'post',
        dataType:'json',
        data:{'waybillnumber':localStorage.result},
        success:function(re){
            window.location.href = "abc.jsp";
        },                                                    
    });                                                                                                                                                                                                                                                                                 
});

代码中的异步属性都设置成了false,这样才能正常执行。

ps:我在写的时候出现了一个小的错误,success写成了successs,你有发现有什么不同吗???
写程序的时候一定要细心,就是因为多写了一个s,一直不能回调,还不容易调试出来。

更多推荐

ajax嵌套ajax