比如说有如下场景:
第一个ajax请求到服务器用来保存用户 session.setAttribute("user",userObj);
然后第二个ajax请求到服务器来获取用户,这时候拿到的userObj为null. 怎么回事呢?
取到用户对象为null肯定是session对象不一致,session对象不一致肯定页面的sessionid不一样(用火狐firebug查看一下就能发现)
那么我们就可以推断出ajax提交请求的方式不一样了
第一个ajax请求是异步形式
第二个ajax请求是同步形式
这样就会出现问题
解决方法是统一用同步的方式
在做项目中也需要权衡什么时候用异步,什么时候用同步
一般是读取数据的时候用异步,提交数据的时候用同步
下面是jquery的异步同步提交方式:
$.ajax({
url: "test.html",
async: false/true,// (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
success: function(html){
$("#results").append(html);
}
});