@schurin
Люблю катать с гор, особенно на санках

Почему при выполнении ajax запроса, получив 404 ошибку, останавливается весь скрипт?

Всем добрый день

Отправляю ajax запрос, с заведомо неправильным именем файла, ибо ситуция такая может случится решил проверить, получаю 404, ну норм его и ждали, а потом остановка выполнения последующего кода.

добавил метод fail() в котором вызвал abort() на неудачном запросе

var cleanSvg;
var ajaxRequest = $.ajax({
    url: url,
    dataType: 'text',
    success: function(xml) {

        cleanSvg = cleanLayout($(xml));

    },
    error: function() {

       console.error('Failed to load: ' + url);

    }
}).done(function() {

     callback(cleanSvg);

}).fail(
     ajaxRequest.abort();
);

Проблему то решил, но для меня оказалась совсем неочевидной остановка дальнейшего выполнение скрипта, как минимум метод error отработал и в консоли сначала появилась 404 ошибка, которая пришла из jQuery, а затем уже мною написанное console.error()

Разве остановка скрипта нормальное поведение и каждый раз такие вещи вручную нужно обрабатывать или я совсем запросы отправлять не умею?
  • Вопрос задан
  • 1124 просмотра
Пригласить эксперта
Ответы на вопрос 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
А зачем вы используете error и fail одновременно? success и done?
С учётом ввода обещаний технически грамотным считается употребление done и fail.
Вызывать abort() после того, как запрос зафейлится?.. А зачем? А вот указать timeout стоило бы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы