asp.net XMLHttpRequest实现用户注册前的验证
测试通过环境VS2008,添加2个新项
1:DEMO3.ASPX
2:IsHaveUser处理程序
1:DEMO3.ASPX
代码如下:
//查询字符串,SEND服务端的参数 function createQueryString() { var userName = document.getElementById("userName").value; var querystring = "userName=" + userName; return querystring; } function RunAjax() { //参考'摘自书中有意义的示例中DEMO1.HTML如何创建XMLHttpRequest对象 代码' createXMLHttpRequest(); var queryString = "IsHaveUser.ashx?"; queryString = queryString + createQueryString() + "&timeStamp=" + new Date().getTime();//URL上追加时间戳,防止浏览器缓存 xmlHttp.onreadystatechange = handleStateChange; xmlHttp.open("GET", queryString, true); xmlHttp.send(null); document.getElementById('validateMessage').innerText = '正在检查,请稍候...'; } function handleStateChange() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { var result = xmlHttp.responseText; document.getElementById("validateMessage").innerText = result; if (result== "恭喜!可以注册...") { setTimeout("document.getElementById('validateMessage').innerText='';", 2000); } } } } <input id="userName" /><input id="IsHaveUser" type="button" value="检查用户是否被注册" onclick="RunAjax();"/><span id="validateMessage" ></span>
2:IsHaveUser处理程序
代码如下:
public class IsHaveUser : IHttpHandler { public void ProcessRequest (HttpContext context) { System.Threading.Thread.Sleep(2000); string userName = context.Request.QueryString["userName"]; bool result = 读取数据库执行判断用户名是否存在操作,返回布尔值,省略代码 if (result) { context.Response.Write("恭喜!可以注册..."); } else { context.Response.Write("此用户存在,请更换..."); } } public bool IsReusable { get { return false;}} }