Я хочу показывать индикатор выполнения "Загрузка" каждый раз, когда отправляется запрос ajax. Можно ли получить уведомление ANYTIME, запрос ajax отправляется с использованием jQuery?
Уловить все запросы ajax в jquery
Ответ 1
Вы можете использовать метод $.ajaxSetup()
для установки глобальных свойств AJAX, которые будут применяться ко всей странице:
$.ajaxSetup({
beforeSend: function() {
// show progress spinner
},
complete: function() {
// hide progress spinner
}
});
Ответ 2
По той или иной причине $.ajaxSetup()
не работал у меня. Прочитав docs, я обнаружил следующее:
Примечание. Глобальные функции обратного вызова должны быть установлены с соответствующими глобальные методы обработчика событий Ajax-.ajaxStart(),.ajaxStop(),.ajaxComplete(),.ajaxError(),.ajaxSuccess(),.ajaxSend() - а не в объекте options для $.ajaxSetup().
Попробуйте $.ajaxStart()
и $.ajaxComplete()
:
$(document).ajaxStart(function () {
console.log('Request Initiated');
});
$(document).ajaxComplete(function () {
console.log('Request Complete');
});
Ответ 3
Попробуйте использовать jQuery ajaxStart event