使用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和/或仅在我搜索特定节点时提供信息。
有想法的人吗?
答案 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")
对象。