У меня есть скрипт в php, который пишет XML.
Я использую вызов ajax для чтения этого XML.
$.ajax({ url: "http://blablabla.com/myscript.php", data: requestVars, dataType: 'xml', success: function(xml){ XMLParser(xml); }, error: function(xhr,err){ alert("readyState: "+ xhr.readyState + "\nstatus: " + xhr.status + "\nerror:" + err); alert("responseText: " + xhr.responseText); } });
На php у меня есть следующее:
<?php header('Content-Type: application/xml; charset=UTF-8'); ... ?>
(попробовал как с приложением / xml, так и с текстом / xml)
Проблема:
Работает как очарование в Google Chrome, не работает на IE9 и Firefox с readyState: 4, статус: 200 и Ошибка: parsererror
EDIT: небольшая часть образца XML:
<?xml version='1.0' encoding='utf-8'?> <Index Title="asdsad" isImg="0"> <Categories> <Cat Id="13"> <Title>Movies</Title> </Cat> <Cat Id="15"> <Title>Books</Title> </Cat> </Categories> <Subject Id="141" Open="0"> <Title>Subject A</Title> <Resource Id="553" Level="2"> <Title>Resource A1</Title> </Resource> </Subject> </Index>
Вы уверены, что кодировка вашего редактора будет utf-8, и вы сохраните этот xml / php-файл как utf-8?
Используйте firebug в firefox, чтобы проверить, какая ошибка генерирует ваш вызов. Возможно, это всего лишь некоторый недопустимый символ utf-8 внутри вашего xml.
Возможно, jQuery не может разобрать XML, но ваш XMLParser может быть.
Если это так, вы можете обработать любой результат, который вы получите с помощью complete
функции. Он будет вызываться, есть ли ошибка (ошибка сети или ошибка синтаксического анализа).