我已經實施瞭解決方案發現here,但它不適用於Firefox。Firefox本地AJAX調用
IE加載並讀取XML文檔正確
罷工說,如果數據類型是「字符串」數據變量保存XML,但將其加載到XML變量返回下面相同的函數。 XML文件是存儲在與HTML文件相同的文件夾中的平坦文件。該文件正在從"file:///D:/..."
運行,而不是從網絡服務器運行。
火狐版本16.0.2,我已經試過的jQuery 1.7.1和1.8.2。我做了一個dataType
比較,數據不是XML
,但只是說Object
。
我做的$(data).contents
警報,並得到:
function (c, d) {
var e = p.map(this, b, c);
return bc.test(a) || (d = c), d && typeof d == "string" && (e = p.filter(d, e)), e = this.length > 1 && !bg[a] ? p.unique(e) : e, this.length > 1 && bd.test(a) && (e = e.reverse()), this.pushStack(e, a, k.call(arguments).join(","));
}
我已經嘗試設置security.fileuri.strict_origin_policy
到假,但沒有效果。
下面是代碼:
$.ajax({
url: "COBIE.xml",
dataType: ($.browser.msie) ? "text" : "xml",
success: function (data) {
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
// Returned data available in object "xml"
setMessage("XML date has been loaded");
} else if (typeof data == "xml") {
xml = data;
alert($(xml).contents);
// Returned data available in object "xml"
setMessage("XML date has been loaded");
} else {
alert($(data).contents);
setMessage("I have no idea what data you're trying to load");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
setMessage(errorThrown);
}
});
js是弱類型語言,'typeof data'只會返回''string''或''object''在你的情況下。 – xiaoyi
您是否考慮設置本地XAMPP或Node.js服務器並使用它?第一次啓動它需要大約一個小時,而永遠只需要大約10分鐘;根據您的最終目標是什麼(即針對這種情況下的開發),可能會節省您一些瀏覽器安全策略的時間和精力。 – Kato