最近在测试,发现有些效果不对,最后发现是post的执行顺序问题,所以研究了下,写了以下总结
1.post被请求多次,解决方法:
连接加入随机数 rand=""+Math.random()
$.post("/Control/webControl.ashx?rand ="+Math.random(), { Method: "LoginIn", Parems: ps }, function (data, textStatus) { $("#divOver").css("visibility", "hidden"); switch (data) { case "1": window.location = '/default.aspx'; break; case "0": $("#tips").text("找不到该用户"); u.focus(); changevcode(); errcount++; break; case "-1": $("#tips").text("用户或密码错误"); changevcode(); c.val("").focus(); errcount++; break; default: alert(data); } });
2.因为post默认为异步请求,可是有时候我们会发现,本来要求请求马上出现,可是异步会导致后面突然再执行,这样就出问题了
所以,我们需要加入
$.ajaxSetup({ async : false });
3.如果需要有些同步有些异步,那么我们应该使用最原始的ajax请求,然后把async设置为false
$.ajax({ type : "post", url : "register/RegisterState", data : "test=" + test, async : false, success : function(data){ data = eval("(" + data + ")"); aDataSet = data; } });