[英]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;
}
我認為我的代碼是正確的,因為它在firefox
和crome
做得很好,但在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.