У меня есть простая команда AJAX JQuery для обновления корзины (запускаемое изменением списка выпадающего списка):Почему jQuery ajax успешный обратный вызов вызван отмененным вызовом AJAX?
$.ajax({
type: "POST",
url: $.url("updateCart"),
data: data,
dataType: "json",
success: function (data, status, req) {
alert(data + " - " + status + " - " + req);
});
Оказывается, что в JQuery 1.4.x поведение призвания success
обратного вызова изменился.
Если вы отправляете запрос AJAX, а затем нажмите кнопку «регулярная» кнопка отправки формы HTML, он мгновенно отправит «null» на обратный вызов успеха. Таким образом, для приведенного выше примера, если я вызвать событие AJAX, а затем нажмите кнопку не-AJAX представить - он отображает предупреждение:
null - success - [object XMLHttpRequest]
Скрипач проверяет для меня, что ответ AJAX еще не вернулся с сервера - все же вызывается метод success
.
Это нарушало некоторые из моего кода, потому что он ожидал, что данные будут существовать.
Я отлично разбираюсь в null
, если мне нужно - я просто не могу найти документацию об этом изменении в jQuery.
Так что мне интересно, это ошибка или по дизайну?
Было бы полезно увидеть обработчик событий, который обычно запускает функцию ajax. – Anthony
@anthony это действительно не имеет значения. его просто выпадающее событие изменения. если никто не получит ответ на этот вопрос, я создам правильный примерный проект, но если его явная известная ошибка или по дизайну, я бы скорее не потратил на это больше времени. thx –