今天做了个东西,在提交数据走后台返回到前台的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";
},
});
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
代码中的异步属性都设置成了false,这样才能正常执行。