///Handler.ashx代码如下:
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Xml;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/xml";//设置请求类型为text/xml类型
context.Response.Expires = -1;
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
XmlTextWriter xml = new XmlTextWriter(context.Response.Output);
xml.WriteStartDocument();
xml.WriteStartElement("persons");
xml.WriteStartElement("person");
xml.WriteStartElement("name");
xml.WriteString("张三");
xml.WriteEndElement();
xml.WriteStartElement("age");
xml.WriteString("18");
xml.WriteEndElement();
xml.WriteEndElement();
xml.WriteStartElement("person");
xml.WriteStartElement("name");
xml.WriteString("赵六");
xml.WriteEndElement();
xml.WriteStartElement("age");
xml.WriteString("28");
xml.WriteEndElement();
xml.WriteEndElement();
xml.WriteEndElement();
xml.WriteEndDocument();
xml.Flush();
context.Response.End();
}
public bool IsReusable {
get {
return false;
}
}
}
//
//postdemo.aspx页面代码如下
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="postdemo.aspx.cs" Inherits="postdemo" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>POST方法演示</title>
<script type="text/javascript" language="javascript">
//声明一个XMLHTTPRequest对象
var request;
//创建XMLHTTPRequest对象
function createrequest()
{
if(window.ActiveXObject) //两种都是IE浏览器
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}catch(e)
{
try
{
return new ActiveXObject("Mircosoft.XMLHTTP");
}catch(e1)
{
return null;
}
}
}else if(window.XMLHTTPRequest)
{
return new XMLHTTPRequest();
}else
{
return null;
}
}
function sendMsg()
{
request=createrequest();
if(request)
{
request.onreadystatechange=receive;
request.open("post","Handler.ashx",true);//para1 提交方法 //para2 需要提交到的url 以url形式传值 //para3 是否同步 true为同步
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');//post方法必须要设置此参数
request.send(null);//使用值null调用send().因为已经在请求 URL 中添加了要发送给服务器的数据(val),所以请求中不需要发送任何数据.
}
}
function receive()
{
if(request.readyState==4)//5种状态 0代表未初始化 1表示正在加载 2表示加载完毕 3表示交互 4表示完成
{
if(request.status==200)//200表示信息成功返回 404代表提交的url错误
{
//document.getElementById("txtTime").value=request.responseText;
var xml=request.responseXML;
var parentNode=xml.documentElement;//得到根节点persons
var entity=xml.getElementsByTagName("person");//得到根节点下的子点person型的--数组--
alert(entity.length);
var str="<table border='1'>";
for(var i=0;i<entity.length;i++)
{
var a=entity[i].childNodes[0].firstChild.nodeValue;
var b=entity[i].childNodes[1].firstChild.nodeValue;
alert(a);
str+="<tr><td>"+a+"</td><td>"+b+"</td></tr>";
}
str+="</table>";
document.getElementById("result").innerHTML=str;
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txtTime" runat="server" Width="350"></asp:TextBox>
<input id="btnTime" type="button" value="Get XML Context" οnclick="sendMsg()" />
<div id="result"></div>
</form>
</body>
</html>
asp.net ajax Hanlder处理方式
最新推荐文章于 2023-04-10 10:17:20 发布