徵狀
當您使用Load XMLDOM 物件模型的方法來同步載入透過 SSL 連線的用戶端電腦上的 「 可延伸標記語言 (XML) 文件時,則方法會失敗,錯誤碼為 0x800c0007,和 INET_E_DATA_NOT_AVAILABLE 傳回值。
原因
檔案不會快取在用戶端電腦時,就會發生這個問題。為什麼檔案可能不會快取的幾個原因有:
-
使用者可選取 [網際網路選項] 對話方塊中的 [進階] 索引標籤上的 [不要儲存到磁碟加密的網頁] 核取方塊。
-
伺服器傳送 Pragma:no-快取或快取-控制項: 沒有-快取標頭。
-
如果您使用的 Microsoft 網際網路資訊伺服器 」 (IIS),[內容到期] 選項會設定為 [過期,立即傳送不快取標頭以及到期日: 0http 標頭。
解決方案
若要解決這個問題,請執行下列步驟:
-
在 Internet Explorer 中的 [工具] 功能表中,按一下 [網際網路選項]。在 [進階] 索引標籤上清除 [不要儲存到磁碟加密的網頁] 核取方塊。
-
請確定伺服器不會傳送不快取標頭。
-
在 IIS 中,在 Microsoft 管理主控台 (MMC) 嵌入式管理單元,以滑鼠右鍵按一下 XML 檔案。在HTTP 標頭] 索引標籤中,關閉 [內容到期] 選項。
狀態
Microsoft 已確認這是本文開頭所列的 Microsoft 產品中的錯誤。
其他相關資訊
若要重現問題的步驟
-
在 Internet Explorer 中的 [工具] 功能表中,按一下 [網際網路選項]。在 [進階] 索引標籤上清除 [不要儲存到磁碟加密的網頁] 核取方塊。
-
建立名為 Test.html,HTML 檔案,然後貼上下列程式碼:
<HTML><BODY><INPUT type=button onclick=loadmyxml() value="Load XML"><SCRIPT>function loadmyxml(){var XMLObj = new ActiveXObject("Microsoft.XMLDOM")XMLObj.async = false;XMLObj.load('https://localhost/secure/test.xml'); if (XMLObj.parseError.errorCode != 0)alert("Error loading XML file : " + XMLObj.parseError.reason);elsealert (XMLObj.xml);}</script></BODY></HTML>
-
請將 Test.html 儲存到安全的資料夾中,在您的 Web 伺服器上。
-
建立名為 Test.xml,新的 XML 檔案,然後貼上下列程式碼:
<?xml version='1.0' ?><BOOKLIST><BOOK><CATEGORY>Fiction</CATEGORY><TITLE>The Snow Leopard</TITLE><AUTHOR>Desmond Bagley</AUTHOR></BOOK></BOOKLIST>
-
請將 Test.xml 儲存到安全的資料夾中,在您的 Web 伺服器上。
-
在 Internet Explorer 瀏覽 Test.html,並再按一下 [載入的 XML。您會收到錯誤 0x800c0007。
參考
如需有關 XML 的詳細資訊,請參閱下列文件 Microsoft 開發人員網路 (MSDN):
如需有關 Microsoft Internet Explorer 開發以 Web 為基礎的解決方案的詳細資訊,請造訪下列 Microsoft 網站: