为什么XP上的IE8使用JQuery无法正确读取XML?

时间:2010-05-12 01:49:43

标签: jquery xml internet-explorer

在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将其解释为空字符串时正确读取元素的内容?

1 个答案:

答案 0 :(得分:6)

jQuery .find() doesn't return data in IE but does in Firefox and Chrome

这看起来是非常相同的问题。一些亮点:

“如果将messages.xml作为错误的mime类型,Internet Explorer将不会将其解析为XML。”

“您需要更改服务器以发送内容类型的”text / xml“。”

归功于Matthew Crumley

来自jQuery documentation
“如果您将$ .ajax dataType选项指定为”xml“,请确保您的服务器发送带有”text / xml“MIME类型的内容。发送错误的MIME类型将禁止jQuery正确管理返回的数据回应“

“使用dataType参数将xml文件作为文本加载,并在succes函数中解析返回的数据”