读书人

AJAX无刷新登录有关问题

发布时间: 2012-02-19 19:43:39 作者: rapoo

AJAX无刷新登录问题 - Web 开发 / Ajax
先发代码。。。。

JScript code
var xmlhttp;        function creatHttp() {            if (window.ActiveXObject) {                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");            }            else {                xmlhttp = new XMLHttpRequest();            }        }        function postData() {            creatHttp();            var uname = document.getElementById("Text1").value;            var upass = document.getElementById("Text2").value;            if (uname.length == 0 || upass.length == 0) {                alert("请输入用户名密码!");                return;            }            else {                var userinfo = "";                userinfo = uname + "," + upass;                xmlhttp.open("post", "Index/DataPage.aspx?userinfo=" + escape(userinfo), true);                xmlhttp.onreadystatechange = stateChange;                xmlhttp.send(null);            }        }        function stateChange() {            if (xmlhttp.readystate == 4) {                if (xmlhttp.status == 200) {                    document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText);                }            }            else {                alert("用户名密码错误!");            }        }

然后是传入数据页面的代码
C# code
protected void Page_Load(object sender, EventArgs e)    {        Users users = new Users();        string userinfo = Request.QueryString["userinfo"];        string[] arr = userinfo.Split(',');        string uname = arr[0].ToString();        string upass = arr[1].ToString();        users.Uname = uname;        users.Upass = upass;        DataSet ds = users.CheckUser(users);        if (ds.Tables[0].Rows.Count > 0)        {            Response.Write("欢迎" + uname + "登录!");        }    }

现在的问题是,每次输入正确的用户名和密码的时候很正常,能够出现欢迎用户登录的字段,但是输入错误的用户名密码时,那个错误提示框回提示三遍,然后输入用户名和密码的框跟按钮就都不见了,也就是login那个DIV没东西了,请问是怎么回事?

[解决办法]
提示3遍就对了
function stateChange() {
if (xmlhttp.readystate == 4) {
if (xmlhttp.status == 200) {
document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText);
}
}
else {
alert("用户名密码错误!");
}
}
改成

function stateChange() {
if (xmlhttp.readystate == 4) {
if (xmlhttp.status == 200) {
if(xmlhttp.ResponseText=="这里写登陆成功返回的字符串"){
document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText);}else{
alert("用户名密码错误!");
}
}
}
}
因为readystate会改变3次



document.getElementById("login").innerHTML = unescape(xmlhttp.ResponseText);
这句是login DIV中显示返回的字符串登陆成功你返回"欢迎(" + uname + "登录!")
密码错误什么也没返回当然就什么也不现实

读书人网 >Ajax

热点推荐