.NET动态XML在IE以外的所有浏览器中都可以正常读取

时间:2010-10-04 15:43:43

标签: .net jquery xml ajax

使用AJAX从动态生成的XML中提取数据。使用简单的jQuery Ajax:

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

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

}

});

在Firefox,Chrome,Safari中,警报会返回与我告诉它找到的节点相关的所有字符串。在IE中,警报框为空白。如果我切换出动态网址并将其更改为静态XML并搜索节点,则两个浏览器都会返回相同的信息。

我的问题是,是否可以为IE所遵循的动态XML设置某种权限,并拒绝恢复所需的信息。

另一个快速说明,如果我为数据本身创建一个警报,如下所示:

alert(xml);

两种浏览器都返回相同的数据。似乎IE似乎拒绝从动态创建的XML和/或仅在我搜索特定节点时提供信息。

有想法的人吗?

1 个答案:

答案 0 :(得分:0)

首先尝试使用jQuery.ajax的其他参数cache: false重复测试。

success功能更改为function(xml, textStatus, xhr)并使用xhr.responseText显示alert(xhr.responseText)也会很有趣。根据您是否在服务器响应中设置content-type,参数dataType:"xml"也很有用。

更新:如果您确实在IE中收到xml数据并且只能加载XML数据,那么您应该关注the recommendation from the jQuery Documentation。您应该测试当前浏览器是否为IE。对于IE,您应该将数据加载为文本:dataType: "text"然后在success处理程序内部将xml文本转换为ActiveXObject("Microsoft.XMLDOM")对象。