Прервать ajax запрос, не влияя на следующий запрос - PullRequest
1 голос
/ 10 февраля 2020

У меня есть ввод числа и событие onChange, где я запускаю этот запрос ajax (см. Код). Это прерывание влияет на мой следующий запрос. Если я отправляю только один запрос без прерывания, запрос имеет нормальную скорость, но если я отменяю, как 3 запроса, ajax выглядит так, как будто он отправляет в одном запросе все отмененные запросы ...

 globalAjaxChange = $.ajax({
    type: 'POST',
    dataType: 'json',
    url: ajaxUrl,
    data: formData,
    processData: false,
    contentType: false,
    beforeSend: function () {
        if (globalAjaxChange != null) {
            globalAjaxChange.abort();
        }
    },
    success: function (data) {
        if (data['ok'] == false) {
            notify(data['msg'], 'error');
        }
    },
    error: function (data) {
        if (data.statusText !== 'abort')
            notify('message', 'error');
    }
});

Вот проверка сети:

Network Inspection

1 Ответ

1 голос
/ 10 февраля 2020

Попробуйте вернуть try / false в вашем beforeSend обратном вызове. Если вам все равно не нужно отправить запрос ajax, jQuery отменит запрос для вас с возвратом false в этой функции. См. jQuery документы здесь для получения дополнительной информации о методах обратного вызова.

Возможно, у вас также возникли проблемы с logi c или asyn c в наборе переменной globalAjaxChange. Это приведет к тому, что запрос ajax будет всегда отправляться, никогда не возвращая ноль в вашем чеке для globalAjaxChange. Попробуйте установить точки останова вокруг того места, где оно отправляется и устанавливается, чтобы увидеть значения.

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