Ajax基础-XMLHttpRequest对象的创建、数据请求和处理中已经介绍了XMLHTTPREQUEST对象的使用。下面是使用该对象请求服务器数据。
代码在IE6、FireFox1.5、NetScape8.1、Opera9调试通过。服务器为Window2000P + IIS5+ASP.net 2.0
1、使用XMLHTTPREQUEST对象请求ASP.Net文件
这里仍然使用GET方法来请求服务器端数据,与上篇不同的是,这次请求的是ASP.Net的脚本文档而不是XML文件,需要服务器解析并返回数据。客户端得到数据后依然直接显示。
/ ASP.net处理过程,请求ASP.net文件function startRequestFromServer()
{
createXMLHttpRequest();
xhr.onreadystatechange=handleStateChangeASPX;
xhr.open("GET","ajaxserver.aspx",true);//使用GET方法请求ASP.Net文件xhr.send(null);
}/ AJAX得到回应的处理方式,直接在已有的标签中显示返回结果function handleStateChangeASPX()
{if(xhr.readyState==4)
{if(xhr.status==200)
{
var test=document.getElementById("test");
test.innerHTML=xhr.responseText;
}
}
}
XMLHTTPREQUEST对象的建立参照上文
2、服务器端脚本
服务器端脚本简单的使用了ASP.Net提供的数据查询功能,查询结果通过HTML文档的方式返回给客户端。
ajaxserver.aspx.cs文件usingSystem;usingSystem.Data;usingSystem.Data.OleDb;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;publicpartialclassajaxserver : System.Web.UI.Page
{protectedvoidPage_Load(objectsender, EventArgs e)
{if(!IsPostBack)
{//建立数据库连接并查询数据String connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=";
connectionString+=MapPath("")+"/XTT.MDB";
OleDbConnection connection=newOleDbConnection(connectionString);
connection.Open();
OleDbCommand command=newOleDbCommand();
command.Connection=connection;
command.CommandText="SELECT * FROM Classes";
OleDbDataReader reader=command.ExecuteReader();//将数据查询结果以HTML的格式返回给浏览器Response.Write("
");//创建返回结果的表格,这里最好要包含
Xhtml+="
";//建立表头Xhtml+="分类标识/th>";Xhtml+="
分类名称/th>";Xhtml+="
创建时间/th>";Xhtml+="
创 建 人/th>";Xhtml+="
父类标识/th>";Xhtml+="
操作/th>";Xhtml+="
";//填写表格数据while(reader.Read()){
Xhtml+="
";Xhtml+="
"+reader["Class_ID"].ToString()+"/td>";Xhtml+="
"+reader["Class_Name"].ToString()+"/td>";Xhtml+="
"+reader["Create_Time"].ToString()+"/td>";Xhtml+="
"+reader["Create_Man"].ToString()+"/td>";Xhtml+="
"+reader["Parent_ID"].ToString()+"/td>";Xhtml+="
"+" "+"编辑"+"/a>";}//建表结束Xhtml+="/tbody>/table>";//返回给浏览器Response.Write(Xhtml);
由于服务器端会返回ASP.net页面上的所有内容,这里将HTML标签全部删掉了。只剩下与.CS文件相关的内容。如果将标签和代码放在一个页面内会更好。