У меня есть несколько вызовов ajax, и когда они преуспевают, мне нужно, во-первых, сделать одну и ту же проверку для всех ответов, а затем, если проверка не подводит, делать разные вещи с ответами.
На данный момент я использую success
вариант в каждом из вызовов и вставить эту проверку в каждом из вызовов, как это:
$.ajax({
success: function (data){
if (response_has_errors(data))
{return}
// do stuff
}
});
Итак, у меня есть идея: использовать $(document).ajaxSucces()
для делаете а затем использовать $.ajax().done()
или success
с каждым из вызовов.
Но мне нужно, чтобы обработчик в $(document).ajaxSucces()
всегда выполнялся первым, и если он возвращает false
, не выполнять отдельные обработчики. Как мне это сделать?
К сожалению, я не влияю на то, что сервер возвращает. Кроме того, я не совсем понимаю, в вашем решении, как я * сначала * делаю одну и ту же проверку, а затем * обрабатываю ответы отдельно? – protasovams
@protasovams Если вы не можете изменить код ответа сервера, вы можете (и должны) по-прежнему использовать [jQuery's * Deferred * architecture] (http://api.jquery.com/category/deferred-object/). Вот пример, который может прояснить некоторые вещи. http://jsfiddle.net/XTVxt/ – Tomalak
Ничего себе, огромное спасибо за прекрасный пример, он все прояснил. – protasovams