fypoop

博客园 首页 新随笔 联系 订阅 管理
XmlHttp可以实现不刷新页面,而与服务器交互数据。
其主要原理是静态页面调用一个.aspx页面与服务器交互,然后静态页面取回.aspx页面
输出的XML,进行解析后显示在静态页面上。
举个例子:
recievdata.aspx就是静态页面请求的动态页面
很简单返回一个OK
private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   byte[] bytResult = Encoding.UTF8.GetBytes("<Code value=\"ok\">OK</Code>");
   Response.ContentType = "text/xml";
   Response.BinaryWrite(bytResult);
  }

注意一定要把这个.aspx页面上其他的htm语句全删除,要不结果不能成为纯XML。


静态页面
放个text框,旁边放个button给其加上个事件onclick=“test()“
function xmlSend(strURL, xmlDoc)
{ var innerXmlHttp = new ActiveXObject("Msxml2.XmlHttp");
var strDoc; if (typeof(xmlDoc) == "object") strDoc = xmlDoc.xml;
else strDoc = xmlDoc;
innerXmlHttp.open("POST", strURL, false);
innerXmlHttp.send(strDoc);
return innerXmlHttp.responseXML; }
function test()
{ var xmlQuery, xmlResult;
xmlQuery = "<Code>add</Code>";
 xmlResult = xmlSend("recievdata.aspx",xmlQuery);
 var nodes =  xmlResult.documentElement.selectNodes("/Code"); //解析返回的XML
Text1.value=nodes[0].getAttribute("value");//在text框中显示取回的结果
}

function test()
   {
    var xmlQuery, xmlResult;
    xmlQuery = "<Code>add</Code>";    
    xmlResult = xmlSend("recievdata.aspx",xmlQuery);
    var nodes = xmlResult.documentElement.selectNodes("/Code");
    Text1.value=nodes[0].getAttribute("value");
    //Text1.value=xmlResult.value;    
   }

静态页面完成了。


OK这样就完成了。
posted on 2004-06-04 17:34  冰冷  阅读(1056)  评论(1编辑  收藏  举报