0
我通過MSXML2.DOMDOCUMENT.3.0 ActiveXObject從aspx頁加載XML。MSXML DOM無法從IE9中的URL同步加載XML
var xmlDoc = null;
try {
xmlDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
xmlDoc.setProperty("SelectionLanguage", "XPath");
}
catch (e) {
window.alert("CreateXMLDocument failed due to the following problem: " + e.description);
}
if (xmlDoc != null) {
xmlDoc.async = false;**
var result = xmlDoc.load("xmlData.aspx");
if (result == false) {
window.alert("failed to load xml due to the following problem: " + xmlDoc.parseError.Reason);
}
else {
window.alert(xmlDoc.selectSingleNode("//RESULT").text);
}
}
提供XML數據aspx頁面:
<%@ Page Language = "JScript" EnableSessionState="ReadOnly" %>
<% Response.Buffer = true %>
<%
Response.ContentType = "text/xml";
Response.Write("<?xml version='1.0'?>");
Response.Write("<RESULT>1</RESULT>");
%>
- 如果這兩個頁面下HTTP運行,我可以彈出 「1」 IE9說;
- 如果這兩個頁面運行在https,我只能得到錯誤彈出窗口,這意味着xml未成功加載。
- 但是,如果我更改xmlDoc.async = true並使用ondataavailable回調函數來獲取數據,它將彈出「1」。
對此有何想法?
更新:我發現XMLDOM無法從IE9中的https同步加載xml,然後使用XMLHTTP加載xml而沒有任何問題。但現在的問題是XMLHTTP加載的xslt無法用於轉換xml。
再次更新:說XML DOM無法從IE9中的https同步加載xml是不正確的。在IE9 Internet選項 - >高級 - >安全 - >「不要將加密的頁面保存到磁盤」中,如果您選中了它,則會出現問題。取消選中它,問題就解決了。