2011-08-03 48 views
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選項 - >高級 - >安全 - >「不要將加密的頁面保存到磁盤」中,如果您選中了它,則會出現問題。取消選中它,問題就解決了。

回答