【发布时间】:2011-05-15 14:27:53
【问题描述】:
我有以下代码:
var xmlCurr = new ActiveXObject("Microsoft.XMLDOM");
xmlCurr.async = false;
xmlCurr.load(xmlURL);
return xmlCurr;
从 xmlCurr 我需要以下信息
xmlCurr.xml
xmlCurr.documentElement
xmlCurr.selectSingleNode("result").text;
此代码在 IE6+ 上运行良好,但不适用于 Chrome 或 Firefox。
我已尝试从 http://www.w3schools.com/Xml/xml_parser.asp
要获得类似以下内容:
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlCurr=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlCurr=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlCurr.open("GET",xmlURL,false);
xmlCurr.send();
xmlCurr.xml=xmlCurr.responseXML;
return xmlCurr;
但无济于事... 有人有什么想法吗?
更新:
我的代码似乎根本不运行 AJAX。
responseText = "\r\n"
statusText="OK"
我不知道如何确定 MIME 类型。但是 responseXML.xml=""
更新:
感谢 abieganski 来自http://xkr.us/code/javascript/XHConn/ 的建议 我不得不做一些调整,但它现在几乎可以工作了......
-
出于某种原因 - 我认为我的网站的设计方式 - 我必须将函数更改为同步,而不是使用回调函数进行异步
-
我不明白为什么,但我得到了 responseText 但没有 responseXML。因此 selectSingleNode 不起作用。因此我不得不写一段脏代码而不是 selectSingleNode
function selectSingleNode2(aXML,aNode) { aNode=aNode.substr(2,aNode.length-2); var b1=aXML.indexOf("<"+aNode+">")+aNode.length+2; var b2=aXML.indexOf("</"+aNode+">"); var b3=aXML.substr(b1,b2-b1); return b3; }
任何想法为什么? 谢谢!
【问题讨论】:
-
具体发生了什么?响应的 MIME 类型实际上是 XML 吗?
标签: xml ajax google-chrome activex