簡體   English   中英

嘗試僅在IE上使用ajax請求讀取本地xml文件時,訪問被拒絕

[英]Access is denied when try to read a local xml file using ajax request on IE only

我試圖從單個html頁面(不是應用程序)讀取本地文件forms.xml
Javascript代碼:

if (window.XMLHttpRequest)
{
    xmlhttp=new XMLHttpRequest();
}
else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("GET","forms.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
}

我認為我的代碼是正確的,因為它在firefoxcrome做得很好,但在IE中它的說法

SCRIPT5: Access is denied.

在線xmlhttp.open("GET","forms.xml",false);

現在我已經閱讀了一些關於這個問題的帖子,他們都給出了不同的解決方案,有些人說它在IE 9中存在問題,但我使用10.0.9200

可能的解釋和解決方案請。

這是跨域請求的問題。 XMLHttprequest只需要在同一個域上調用並通過http請求運行。 在沒有服務器的情況下在本地運行頁面將導致IE中的訪問被拒絕錯誤(以及大多數其他瀏覽器)

如果您只是在測試,可以嘗試覆蓋IE中的設置以查看它是否有幫助。

您可以通過進入Internet選項 - >安全設置 - >自定義級別並啟用“跨域訪問數據源”來啟用IE上的跨域。

這段代碼適用於從IE5開始的任何舊版瀏覽器

try{
     xmlhttp = new XMLHttpRequest();
   }catch(e){
    try {
        xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0");
    }
    catch(e){
        try {
            xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
        }
        catch(e)    {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)    {
                alert("XMLHTTP Not Supported On Your Browser");

            }
        }
    }
}

使用xmlhttp = new ActiveXObject("MSXML2.XMLHTTP")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM