我正在構建一個用於觸摸屏信息亭的單頁HTML頁面。我有一個名爲data.xml
的外部XML文件,它位於與我的HTML頁面相同的目錄中。我能夠使用jQuery加載外部XML文件,解析它並在頁面加載時動態構建一些HTML,而不會在Firefox和Chrome中出現任何問題。 但後來我在Internet Explorer中嘗試了它...如何使用jQuery從Internet Explorer中的本地XML文件查詢XML元素?
XML文檔使用$ .ajax()函數加載得很好。我做了一個alert(xmlDoc.text())
,它顯示了XML文檔的所有文本內容。所以這不是問題。
我做了一些搜索,發現a StackOverflow answer如果您從Web服務器提供XML,則可以解決問題。它基本上聲明爲了使Internet Explorer將xml字符串視爲xml,需要以下HTTP HEADER。
content-type:application/xml;charset=utf-8
此HTML頁面需要只是運行的Internet Explorer中一個獨立的頁面。 我們不會在自助終端機上運行Web服務器。
我的問題是在jQuery中加載本地資源時是否有任何方式指定正確的內容類型?
下面是相關的Ajax代碼,我有工作...
$.ajax({
url: 'data.xml',
async : false,
success : function(response) {
xml = $(response);
}
});
// Following line works in Firefox/Chrome, but not in Internet Explorer
var firstItemText = $("item:first", xml).text();
編輯:我添加了一個錯誤處理功能上,像這樣的AJAX請求......
$.ajax({
url: 'data.xml',
async : false,
dataType : "xml",
success : function(response) {
xml = $(response);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('Data Could Not Be Loaded - '+ textStatus);
}
});
此功能在Internet Explorer中觸發,產生的消息爲:
Data Could Not Be Loaded: - parsererror
我用幾個在線XML驗證器工具檢查了我的XML文檔,它沒有錯誤。
任何幫助表示讚賞。
那釘在頭上!感謝菲利普! – jessegavin 2010-06-25 19:02:19