当前位置:编程学习 > C#/ASP.NET >>

ajax获取不了服务器端动态生成的xml文件?

问题很奇怪,我使用ajax获取服务器端生成的xml文档,如果是使用xmlHttp.responseXML获取不了对象,可是用xmlHttp.responseText能获取到文本是正确的xml文档的字符串文本形式

客户端代码:
         var xmlHttp;
        function createXMLHttpRequest()
        {
            if(window.ActiveXObject)
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if(window.XMLHttpRequest)
            {
                xmlHttp = new XMLHttpRequest();
            }
        }
        function addNumber()
        {
         
            createXMLHttpRequest();
            var url= "Handler.ashx";
            xmlHttp.open("post",url,true);
            xmlHttp.onreadystatechange=showResult;
            xmlHttp.send(null);
        }
       
       
        function showResult()
        {
            if(xmlHttp.readyState==4)
            {
                if(xmlHttp.status==200)
                {
                var xmlDoc = xmlHttp.responseXML;
                // var xmlDoc=xmlHttp.responseText;
                alert(xmlDoc);
               document.write(xmlDoc);
                  
                }
            }
         }
服务器端代码:
  public void ProcessRequest (HttpContext context) {
        XmlTextWriter writer = new
        XmlTextWriter(context.Response.OutputStream, Encoding.UTF8);
        writer.WriteStartDocument();
        writer.WriteStartElement("Person");
        writer.WriteStartAttribute("ID", null);
        writer.WriteString("004");
        writer.WriteEndAttribute();
        writer.WriteStartElement("Name");
        writer.WriteString("testWriterName");
        writer.WriteEndElement();
        writer.WriteStartElement("Number");
        writer.WriteString("88888");
        writer.WriteEndElement();
        writer.WriteStartElement("City");
        writer.WriteString("testWriterCity");
        writer.WriteEndElement();
        writer.Flush();
        writer.Close();
            }
请问是服务器输出流设置不对么?谢谢大家指点!

--------------------编程问答-------------------- 应该是你的Start方法没与End方法相匹配,

WriteStartDocument...
  WriteStartElement..
  ..
  WriteEndElement...
WriteEndDocument....

把xmlHttp.responseText传回的东西放进一个xml文件,看浏览器是否高兴 --------------------编程问答--------------------   xmlHttp.open("post",url,true); 
            xmlHttp.onreadystatechange=showResult; 
            xmlHttp.send(null); 
我觉着好像post应该传document
get才是传url. --------------------编程问答-------------------- 服务器端代码在response给客户端的时候, 最好明确的告诉客户端, 传输的数据是xml
Response.ContentType = "text/xml"; --------------------编程问答-------------------- 原因确实如楼上所言,没有明确指出Respones.ContentType="text/xml",而是以默认文本的形式回传给浏览器的! --------------------编程问答-------------------- 还是有点搞不明白,学习,继续学习。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,