日期:2014-05-18  浏览次数:20445 次

ajax登陆后保持隐藏状态的问题!!!
这里的login登陆是首页的一部分,我想通过ajax实现当登陆成功后,隐藏登陆框,且再刷新时保持隐藏的状态,但在firefox下登陆没有问题,也能保持登陆后login部分隐藏的状态,但在ie,chrome中只能每一次登陆成功,再刷新时无法保持登陆后login部分隐藏的状态。

登陆页面脚本

JScript code
<script type="text/javascript">
        
       function myAjax() {  //做成函数当判断验证成功后,再次调用,以保持隐藏状态
            $.post("loginServices.ashx", { username: $('#username').val(), password: $('#password').val() }, function (data, textStatus) {
                if (data != 0) {
                    $('#username').hide();
                    $('#password').hide();   
                    $('#message').empty().append("<p>登录成功!</p>"); 
                    $('#message').append("<sapn id="logout">注销!</span>");       
                    ......
                }
                else {
                    $('#username').show();
                    $('#password').show();
                    $('#message').empty().append("<p>用户密码错误!</p>");
                }
            });
        }

        $(document).ready(function () {
            $("#mylogin").submit(function () {
                if (($('#username').val() == "") || ($('#password').val() == "")) {
                    $('#message').append("<p>用户密码不能为空!</p>");
                }
                else {
                    myAjax();
                }
                return false;
            });
        });
    </script>


后台代码
 
C# code
protected void Page_Load(object sender, EventArgs e)
        {
            if (User.Identity.IsAuthenticated)
            {
                if (!ClientScript.IsStartupScriptRegistered("myscript"))
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "myscript", "<script type='text/javascript'>myAjax();</script>");
                }
            }
        }



loginServices.ashx服务

public void ProcessRequest(HttpContext context)
{
  context.Response.ContentType = "text/plain";
  string name= context.Request.Form["username"].ToString();
  string passwd = context.Request.Form["password"].ToString();

  if( ..验证成功)

  {
  FormsAuthentication.SetAuthCookie(name,false);
  context.Response.Write("1");
  }

  else
  {
  context.Response.Write( "0");
  }

}

试着调试loginServices.ashx第一次登陆没有问题,但再刷新时
  string name= context.Request.Form["username"].ToString();
  string passwd = context.Request.Form["password"].ToString();
name,passwd均为null,页面显示“用户密码错误!”,因为第一次和刷新时都调用myAjax()函数,说明脚本没有问题,请高手指点!!!

------解决方案--------------------
$(document).ready(function () {
$("#mylogin").submit(function () {
if (($('#username').val() == "") || ($('#password').val() == "")) {
$('#message').append("<p>用户密码不能为空!</p>");
}
else {
myAjax();
}
return false;
});
});
为什么每次刷新都试图提交一次?
------解决方案--------------------
我觉得LZ