2010-10-04 40 views
0

使用AJAX使用.NET從動態生成的XML中提取數據。使用簡單的jQuery Ajax:.NET動態XML在除IE以外的所有瀏覽器中都可正常讀取

$.ajax({ 
type: "GET", 
url: "/test/dynamic.aspx", 
success: function(xml) { 

    var itemTitleSrc = $(xml).find('ItemName').text(); 
    alert(itemTitleSrc); 

} 

});

在Firefox,Chrome,Safari中,警報會恢復所有與節點相關的字符串,我會告訴它找到。在IE中,警報框爲空白。如果我切換出動態url並將其更改爲靜態XML並搜索節點,則兩個瀏覽器都會返回相同的信息。

我的問題是,是否可以將某種權限設置爲IE所關注的動態XML,並拒絕恢復所需的信息。

在另一個要點,如果我對於數據本身,像這樣創建一個警報:

alert(xml); 

兩個瀏​​覽器,返回相同的數據。它似乎只是IE拒絕從動態創建的XML和/或僅當我搜索特定節點時才帶來信息。

有想法的人嗎?

回答

0

首先嚐試用jQuery.ajax的附加參數cache: false重複測試。

success功能更改爲function(xml, textStatus, xhr)和顯示xhr.responseTextalert(xhr.responseText)也將是有趣的。取決於您是否在服務器響應中設置了內容類型,參數dataType:"xml"也會有所幫助。

修訂:如果您收到的IE的XML數據,只能無法加載XML數據,那麼你應該遵循the recommendation from the jQuery Documentation。您應該測試當前的瀏覽器是否爲IE。對於IE,您應該將數據加載爲文本:dataType: "text"然後在success處理程序中將xml文本轉換爲ActiveXObject("Microsoft.XMLDOM")對象。

+0

感謝您的回覆。我試着將緩存設置爲false,但是這沒有做任何事情。 – Jim 2010-10-04 18:26:05

+0

此外,重寫了該函數並運行警報,在運行警報(xml)時獲得了FF和IE中xml的標記。奇怪的是,雖然沒有運氣。 – Jim 2010-10-04 18:27:11

+0

@Jim:我更新了答案。我希望如果你按照建議你的代碼將工作。 – Oleg 2010-10-04 18:59:49

相關問題