使用AJAX进行验证

Ajax之前,基于Web的应用必须提交整个页面才能验证数据,还有一种作法就是在客户端通过Javascript来验证表单。当然,能在客户端通过Javascript完成验证可以减轻服务器负担,应该大力提倡。然而有些验证必须要和后台的数 据打交道,Javascript不能再胜任了。怎么办?

利用Ajax,不用再受这个限制。下面这个实例就是利用AJAX对用户唯一性,这个例子很简单,在文本框中输入用户名,点击验证按钮相应的 onclick触发验证方法。再创建一个XMLHTTP对象并从服务器请求一个ASP文档,并将响应信息作为字符串返回。

客户端的代码很简单。点击此处查处效果。

后台的代码也很简单。首先读取URL参数,并将该参数值作为查询条件在数据库中搜索相应记录,如果搜索到的记录集的记录数大于0,则返回该用 户名已经被注册的信息,反之返回该用户名尚未被使用的信息。代码如下:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>  
<%  
Response.CharSet="GB2312";  
var sname=Request.QueryString("sname");  
var conn = new ActiveXObject("ADODB.CONNECTION");  
conn.Provider="Microsoft.Jet.OLEDB.4.0" 
conn.Open(Server.MapPath("../../App_Data/Exam.mdb"))  
var rs = new ActiveXObject("ADODB.RECORDSET");  
var sql = "Select Name FROM Student Where Name = '"+sname+"'";  
rs.Open(sql,conn,1,1);  
if(rs.RecordCount > 0){  
    Response.Write("true");  
}else{  
    Response.Write("false");  
}  
rs.Close();  
conn.Close();    
%>

注意:

  • 要做到浏览器兼容,如果不向服务器发送的数据,请在send方法中加上null参数。
  • 如果向服务器请求的URL参数为多字节字符串,请将escape方法将其URL编码,服务器读取该字符串时会自动将其解码。
  • 返回的响应信息为多字节字符串时,可能会出现乱码,请Response.CharSet设定其编码。

发表评论