读书人

ajax登陆后保持隐藏状态的有关问题!

发布时间: 2012-04-06 12:22:24 作者: rapoo

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
page_load里面的代码不需要,在登录之后直接将登录的表单框隐藏掉就可以了,


还有,建议LZ在登录的时候刷新下页面,然后页面上加session的判断,如果session存在,就直接显示登录用户的状态,如果不存在,直接显示登陆框。

读书人网 >asp.net

热点推荐