首页 > 技术文章 > $.ajax({...});异步请求问题

jeofey 2015-10-11 17:09 原文

$.ajax({...});请求过程中发现的问题。。。先记录后剖析;

jsp中第一次ajax请求成功后,在success后添加如下代码:

success : function(data) {
					if (data == "1") {
						alert("数据在操作中,请稍候!");
					} else {
						$("#refundListForm").attr("action","/。。。/lockData?lockedOrderIds="+lockedOrderIds+"&lockComments="+lockComments);
						$("#refundListForm").submit();
						window.setTimeout(show,10000);   //5秒
						$("#refundListForm").attr("action","");
						alert("锁单成功");
	 					redirectUrl('refundListForm','/。。。/orderList','3');
					}
				},

其中redirectUrl()也是一个请求,这样的结果是,可能第一个请求没执行,直接执行后面的请求;

改成下列形式:上个请求成功后,在执行最后一个请求

success : function(data) {
					if (data == "1") {
						alert("订单正在操作中,请稍候!");
					} else {
						$.ajax({
							type : 'post',
							url : "/。。。/lockData",
							data : {
								"lockedOrderIds":lockedOrderIds,"lockComments":lockComments
							},
							async : false,
							success : function(data) {
								if (data == "1") {
									alert("锁定失败");
								} else {
									alert("锁单成功");
				 					redirectUrl('refundListForm','/。。。/orderList','3');
								}
							},
							error : function(data) {
								return false;
							}
						});
					}
				},


推荐阅读