MSXML DOM 无法从 IE9 中的 URL 同步加载 XML

问题描述 投票:0回答:1

我通过 MSXML2.DOMDOCUMENT.3.0 ActiveXObject 从 aspx 页面加载 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下运行,我可以在IE9中弹出“1”;
  • 如果这两个页面在https下运行,我只能得到错误弹出窗口,这意味着xml没有成功加载。
  • 但是如果我更改 xmlDoc.async = true 并使用 ondataavailable 回调函数来获取数据,它将弹出“1”。

对此有什么想法吗?

更新:我发现XMLDOM无法在IE9中从https同步加载xml,然后使用XMLHTTP加载xml没有问题。但现在的问题是 XMLHTTP 加载的 xslt 无法用于转换 xml。

再次更新:说 XML DOM 无法从 IE9 中的 https 同步加载 xml 是不正确的。在IE9 Internet选项-->高级-->安全-->“不将加密的页面保存到磁盘”中,如果选中它,就会出现该问题。取消勾选,问题解决。

xml internet-explorer-9
1个回答
0
投票

您应该阅读以下内容以获得解释:

避免“不将加密页面保存到磁盘” 存档

© www.soinside.com 2019 - 2024. All rights reserved.