ajax发送请求为什么总执行第一次的结果

我今天写了一个ajax操作:
判断用户的状态决定其拥有什么权限,但每次执行第一个后
改变条件,再执行,还是返回第一次的结果,这是为什么,有没有那位高手能告诉我是什么原因?
js代码:
function checkLogin(){
var temp;
var map = {};
$.ajax({
url : "userLand.do?method=checkLogin",
async : false,
data : map,
success : function(msg){
var ret = $.trim(msg);
if(ret == "nologin"){
if(confirm("您需要登录后才能使用此功能,现在就登录吗?")){
window.location.href = "app/main/userLogin.jsp";
}
temp = false;
msg="";
}
if(ret == "shenhe"){
alert("您现在处于未审核状态,只有浏览权限");
temp = true;
msg="";
}
if(ret == "stop"){
alert("您现在处于暂停状态,只有浏览权限");
temp = true;
msg="";
}
if(ret == "ok"){
temp = true;
msg="";
}
}
});
return temp;
}

Action:

public ActionForward checkLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
//获取当前登录用户信息(0:未审核,2:暂停,1:正常)
LoginInfo logininfo = SysUtil.getCurrUserSession(request);

    String msg = "";
    if(logininfo == null){
        msg = "nologin";
    }else if(logininfo.getUserStatus() == "0"){
        msg = "shenhe";
    }else if(logininfo.getUserStatus() == "1"){
        msg = "ok";
    }
    PrintWriter out = response.getWriter();
    out.print(msg);
    out.close();
    return null;
}

$.ajax({
url:"",
...,
cache:false
});

也许是缓存问题
解决方法:在请求url后加个随机数,用js的Math.random()产生随机数
再看看效果

改变的条件是服务器端还是客户端的呢?

如果是服务器端的,是不是类编译没有重新加载的原因呢?

js没问题,问题应该在后边,
可能是LoginInfo logininfo = SysUtil.getCurrUserSession(request); 这有问题
debug一下看下logininfo 的值,如果没问题的话,js在success的回调里看下msg是什么.

有可能参数没取到,这样总会执行第一个状态。不会执行下面的状态

有没有可能是因为你的action的作用域的问题,将你的action的作用域设置为prototype

如果不是js问题,那就断掉调试啊。。看看怎么执行的