2015-09-09 2 views
13

Я использую jQuery для чтения XML-файла. Иногда XML пуст, и я ожидаю, что функция ошибки (no_info) будет выполнена, потому что файл не отформатирован в соответствии с типом dataType.JQuery AJAX, различное поведение в I.E. И Firefox

В I.E. 10 выполняется функция Error. Но в Firefox (40.0.2) выполняется функция успеха (parse). Почему оба браузера ведут себя по-другому и какой из них правильный?

<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script> 
    $.ajax({ 
     url: '/~play/shout.xml', 
     dataType: "xml", 
     success: parse, 
     error: no_info 
    }); 
</script> 
+5

IE, являющийся IE, вы пробовали его без «~»? Я просто отказался от этого. Когда моя команда разрабатывает веб-сайты/службы, мы всегда добавляем этот jumbotron туда, чтобы «получить себе сообщение chrome/firefox». – NemanjaT

+0

Я думаю, что это происходит потому, что в файле может быть символ или символ новой строки, где браузеры интерпретируют их по-разному. Можете ли вы проверить свой xml, чтобы увидеть, есть ли новая строка? Если удалите его и повторите попытку. – afrin216

+0

No NemanjaT это не проблема. Файл xml читается правильно. Я могу прочитать узлы из файла. Но когда XML-файл пуст, Firefox переходит к функции синтаксического анализа, а IE переходит в функцию no_info. И это странно .... –

ответ

0

параметр dataType просто указывает, какой заголовок «Content-Type» вы ожидаете. До тех пор, пока файл существует и обслуживается с допустимой функцией успеха Content-Type, должен быть запущен.

1

Если бы я был вами, я бы установил обратный вызов console.log (ответ) для успеха и неудачи ... тогда я посмотрю, в чем разница.

Также я бы посмотрел на вкладке в сети, чтобы узнать, что такое заголовки ответов.

Смежные вопросы