<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sending an XML Request</title><script type="text/javascript">var xmlHttp;function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}
    
function createXML() {
    var xml = "<pets>";
    
    var options = document.getElementById("petTypes").childNodes;
    var option = null;
    for(var i = 0; i < options.length; i++) {
        option = options[i];
        if(option.selected) {
            xml = xml + "<type>" + option.value + "<\/type>";
        }
    }
    
    xml = xml + "<\/pets>";
    return xml;
}function sendPetTypes() {
    createXMLHttpRequest();
    
    var xml = createXML();
    var url = "PostingXMLExample?timeStamp=" + new Date().getTime();
    
    xmlHttp.open("POST", url, true);
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
    xmlHttp.send(xml);
}
    
function handleStateChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            parseResults();
        }
    }
}function parseResults() {
    var responseDiv = document.getElementById("serverResponse");
    if(responseDiv.hasChildNodes()) {
        responseDiv.removeChild(responseDiv.childNodes[0]);
    }
    
    var responseText = document.createTextNode(xmlHttp.responseText);
    responseDiv.appendChild(responseText);
}
</script>
</head><body>
  <h1>Select the types of pets in your home:</h1>
  
  <form action="#">
    <select id="petTypes" size="6" multiple="true">
        <option value="cats">Cats</option>
        <option value="dogs">Dogs</option>
        <option value="fish">Fish</option>
        <option value="birds">Birds</option>
        <option value="hamsters">Hamsters</option>
        <option value="rabbits">Rabbits</option>
    </select>
    
    <br/><br/>
    <input type="button" value="Submit Pets" onclick="sendPetTypes();"/>
  </form>  <h2>Server Response:</h2>  <div id="serverResponse"></div></body>
</html>
以上是一段向java提交XML格式信息的ajax,我不懂java,所以请懂的人根据这段代码能写出一个.net片断,用于响应客户端的请求.

解决方案 »

  1.   

    楼主可以看看Ajax.Net框架
    要比这简单得多。。
      

  2.   

    在什么地方可以找到较好的Ajax.Net框架资料?
      

  3.   

    说的简单点就是客户端利用POST方法向服务器(.NET)发送一个XML信息,服务器怎么接收和响应这个请求.
      

  4.   

    1
    var url = "PostingXMLExample?timeStamp=" + new Date().getTime();
    改为
    var url = "PostingXMLExample.aspx?timeStamp=" + new Date().getTime();
    以访问aspx页面
    2
    PostingXMLExample.aspx,设ValidateRequest="false"以便传送xml标签,并清空html标签,只返回结果指示
    <%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeFile="PostingXMLExample.aspx.cs" Inherits="PostingXMLExample" %>
    3
    PostingXMLExample.aspx.cs
    public partial class PostingXMLExample : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            String str = Request.Form[0];
            XmlDocument xd = new XmlDocument();
            xd.LoadXml(str);
            XmlElement xe = xd.DocumentElement;
            string result = "您选择了:";
            foreach (XmlNode xn in xe.ChildNodes) {
                result +="["+xn.InnerText+"]";
            }
            Response.Write(result);
        }
    }
      

  5.   

    不要把ajax想的多么神秘.js中用xmlhttp或xmldom去隐式执行一个后台(background)程序页面,加载了页面的输出到js变量,仅此而已.a.aspx
    <script lang....>
    var xmldom=new ...;
    xmldom.load("b.aspx?id=1");
    document.writeln(xmldoc.xml);
    </script>b.aspxResponse.Write("<root>" + GetTypeName(Request["id"]) + "</root>");public string GetTypeName(int id)
    {
        ...;
        return ...;
    }你直接在浏览地址蓝输入
    http://xxxx.com/b.aspx?id=2
    那么页面输出
    <root>id=2对应的那个typename值</root>
    理解这个没有问题吧.然后A.aspx用xmldom 去 load了这个的输出内容而已.就这么简单
      

  6.   

    乔峰已经讲的很详细了...
    客户端的脚本无论是java还是dotnet都是一样的.
    区别就在你服务器的处理.