Почему IE8 на XP не правильно читает из XML с помощью JQuery? - PullRequest
0 голосов
/ 12 мая 2010

Учитывая этот XML в data.xml

<?xml version="1.0" encoding="utf-8"?>
<data>
  <bar>100</bar>
</data>

Я хочу отобразить содержимое из элемента "bar", используя следующий код в test.html

<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]

Вывод в IE8 на XP:

foo: []

Почему браузеры webkit правильно читают содержимое элемента, а IE8 интерпретирует его как пустую строку?

1 Ответ

6 голосов
/ 12 мая 2010

jQuery .find () не возвращает данные в IE, но в Firefox и Chrome

Это похоже на ту же проблему. Некоторые основные моменты:

"Если вы получите messages.xml как неправильный тип MIME, Internet Explorer не будет анализировать его как XML."

"Вам нужно изменить сервер, чтобы он отправлял" text / xml "для типа контента."

Причитается Мэтью Крамли .

А из документации jQuery :
"если вы указали для параметра $ .ajax dataType значение" xml ", убедитесь, что ваш сервер отправляет содержимое с типом MIME" text / xml ". Отправка неправильного типа MIME не позволит jQuery правильно управлять данными, возвращаемыми ответ "

"используйте параметр dataType, чтобы загрузить файл XML в виде текста и проанализировать возвращенные данные в функции succes"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...