Подтвердить что ты не робот

Разное поведение для пустого XML-ответа между IE и Firefox

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

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

$.ajax({
  url: '/~play/shout.xml',
  dataType: "xml",
  success: parse,
  error: no_info
});
4b9b3361

Ответ 1

Похоже, там ошибка в IE

как насчет того, чтобы справиться с этим самостоятельно?

 function parseXml(xml) {

   if ($.browser.msie)  {

   if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
     xmlhttp = new XMLHttpRequest();
   }else {// code for IE6, IE5
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.open("GET", "XML_file.xml", false);
   xmlhttp.send();
xmlDoc = xmlhttp.responseXML;

xml = xmlDoc;
} 
return xml;

}

предыдущий ответ

Ответ 2

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

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

Ответ 3

какую версию JQuery вы используете? Я использую самое актуальное, и с моей функцией AJAX я не мог столкнуться с какими-либо проблемами. Это мой код

function sync(arg, callback){   //ajax result 
    $('.loader').show();
    $.ajax({ 
        method: 'GET',
        url: 'liveSearch.php',
        data: arg, // send argument and update
        success: function(data, status, xhr){
         $('.loader').hide();
         callback(data);
        },
        error: function(xhr, ajaxOptions, thrownError){
            console.log(thrownError);
        }
   });  
}

function onCallback(data) {
        result = data;
}

Ответ 4

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

Ответ 5

вместо того, чтобы просто /~ попытаться передать весь URL-адрес, с которого вы хотите получить файл XML.