在 data.xml 中给出此 XML
<?xml version="1.0" encoding="utf-8"?>
<data>
<bar>100</bar>
</data>
我想使用 test.html 中的以下代码显示“bar”元素的内容
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$.get('data.xml', function(xml) {
var foo = $(xml).find('bar').text();
document.write("<span>foo: [" + foo + "]</span>");
});
</script>
</body>
</html>
基于 webkit 的浏览器中的输出:
foo: [100]
XP 上 IE8 的输出:
foo: []
为什么 webkit 浏览器能够正确读取元素内容,而 IE8 却将其解释为空字符串?
jQuery .find() 在 IE 中不返回数据,但在 Firefox 和 Chrome 中返回数据 https://stackoverflow.com/questions/562283/jquery-find-doesnt-return-data-in-ie-but-does-in-firefox-and-chrome
这看起来是非常同样的问题。一些亮点:
“如果您将 messages.xml 视为错误的 MIME 类型,则 Internet Explorer 不会将其解析为 XML。”
“您需要更改服务器以发送内容类型的“text/xml”。”
由于信用马修·克拉姆利 https://stackoverflow.com/users/2214/matthew-crumley.
以及来自 jQuery文档 http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests:
“如果您将 $.ajax dataType 选项指定为“xml”,请确保您的服务器发送具有“text/xml”MIME 类型的内容。发送错误的 MIME 类型将禁止 jQuery 正确管理响应中返回的数据”
“使用dataType参数将xml文件作为文本加载,并在succes函数中解析返回的数据”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)