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