我正在處理一個簡單的項目,該項目涉及通過本地.html文件將本地.xml文件加載到DOM結構中。我們可以假設.html和.xml文件放在同一臺計算機上的同一個文件夾中。問題是,IE 11禁止與本地XML文件的任何互動。 (SCRIPT5:訪問被拒絕)使用IE加載本地XML文件11
到目前爲止,我想這解決方案(方案1,2的Mozilla Firefox和谷歌瀏覽器進行測試,並功能,微軟邊緣有一些不同的問題 - 首先看到的代碼片段):
同步/異步的XMLHttpRequest(異步的示例中)
function loadXMLDoc(doc)
{
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.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) /*Microsoft edge returns status 0 here */
{
alert(xmlhttp.responseText);
}
};
xmlhttp.open("GET",doc,true);/*IE11 prints "SCRIPT5: Access is denied." into console*/
xmlhttp.send();
}
而且JQuery的異步溶液
window.onload = function() {
$.ajax({
url: "output.xml",
aync: true,
success: myHandle,
isLocal:true,
dataType: "xml"
});
}
function myHandle(data) {
alert(data);
}
第三解決方案包括簡單Node.js的web服務器(見Using node.js as a simple web server) ,但是這似乎是對我來說是太大的槍。 也有一個問題,網絡服務器必須啓動明確通過CMD /腳本,但我只是想擊中。HTML並看到解釋的XML數據。
TL; DR我的問題是:
- 是否存在,使得對 IE11訪問的本地.xml文件的任何解決方法嗎?
- 爲什麼IE的這種「安全風險」,而不是其他?
注: 由於.xml文件可以有更多的MB,異步解決方案者優先我。
謝謝。
是您的最終目標是以特定的方式呈現XML,看起來像是一個頁面嗎?您的XML是靜態的還是生成的,如果生成時您是否有可能影響生成過程? – smnbbrv
生成Xml(根據特定的DTD)。無論如何,你的期望是正確的我只需要呈現本地頁面模塊(即圖形/表),其中數據從XML加載。 – Smarty77
你堅持JS解決方案嗎?或者只有結果對你有幫助? – smnbbrv