在做登陆注销功能的时候,使用ajax方式请求,点击登陆成功,点击注销成功,再次点击登陆后台就获取不到任何的请求,基本上等同于无效。
通过javascript调试发现ajax代码执行了,回调函数中的数据(data)有值,可是后台就是没有接收到任何请求,如果使用不一样的数据请求,这个时候后台controller方法调用。
总结发现,猜想会不会是浏览器缓存,执行同样的ajax调用同样的数据,直接从缓存中取得,每次关闭浏览器后才能正常执行ajax调用后台。
查阅资料发现jquery中ajax有cache:false,这个属性,不知道什么原因默认打开,将cache:false,加入到ajax请求中就完美解决这个问题。
万万万万想不到ajax请求ie还有缓存这个东西(以前使用ajax根本没出现过这样情况)。
<span style="white-space:pre"> </span>$.ajax({
type:"get",
cache:false,
url:"ttjjlogin-login.json?loginName="+loginName+"&loginPasswd="+password,
dataType:"json",
success : function(msg) {
if(msg.state == "0"){
alert("登陆失败");
}else{
}
}
});
还有一种解决办法是加入一个随机数参数, number=Math.random();