Почему при отмене вызова AJAX вызывается обратный вызов jQuery ajax success? - PullRequest
1 голос
/ 25 февраля 2010

У меня есть простая команда AJAX jQuery для обновления корзины покупок (вызванная изменением выпадающего списка):

 $.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-формы, он мгновенно отправит «ноль» на успешный обратный вызов. Так что для приведенного выше примера, если я инициирую событие AJAX и затем нажму кнопку отправки не AJAX - появится предупреждение:

null - success - [object XMLHttpRequest]

Fiddler проверяет для меня, что ответ AJAX еще не пришел с сервера - все же вызывается метод success.

Это нарушало мой код, потому что ожидалось, что данные будут существовать.

Я отлично проверяю null, если мне нужно - я просто не могу найти документацию по этому изменению в jQuery.

Так что мне интересно, это ошибка или дизайн?

1 Ответ

1 голос
/ 25 февраля 2010

Я думаю, что это ошибка, и я заполнил заявку в трекер ошибок jQuery. (http://dev.jquery.com/ticket/6172)

Эта ошибка не существует в jQuery 1.4.0 и более ранних версиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...