.ajaxSend()


.ajaxSend( handler )Возвращает: jQuery

Описание: Регистрирует обработчик, который вызывается перед тем как Ajax запрос будет отправлен. Является Ajax событием.

Всякий раз перед отправкой Ajax запроса, jQuery инициирует ajaxSend событие. Все обработчики зарегистрированные при помощи .ajaxSend() будут выполнены в этот момент.

Для наблюдения этого метода в действии, установим обработчик и вызовем Ajax load запрос:

1
2
3
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

Добавляем обработчик события к document:

1
2
3
$( document ).ajaxSend(function() {
$( ".log" ).text( "Triggered ajaxSend handler." );
});

Теперь, выполняем Ajax запрос при помощи одного из методов jQuery:

1
2
3
$( ".trigger" ).click(function() {
$( ".result" ).load( "ajax/test.html" );
});

Когда пользовтель кликает по элементу с классом trigger и Ajax запрос отправляется, сообщение показывается внутри элемента с классом log.

Все обработчики ajaxSend будут вызваны, независимо от того какой Ajax запрос будет отправлен. Если Вам нужно различать запросы между собой, то используйте параметры передаваемые в функцию обработчик. Каждый раз когда обработчик ajaxSend выполняется, ему передается объект события object, объект jqXHR (в версии 1.4, XMLHttpRequest) и объект настроек используемый для создания Ajax запроса. Например, Вы можете ограничить функцию обратного вызова при обработке события связанного с конкретным URL:

1
2
3
4
5
$( document ).ajaxSend(function( event, jqxhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
});

Примечания:

  • Начиная с версии jQuery 1.9, все обработчики для глобальных Ajax событий, включая добавленные методом .ajaxComplete(), должны быть прикреплены к to document.
  • Если $.ajax() или $.ajaxSetup() вызваны с параметром global равным false, то обработчики .ajaxComplete() не будут вызваны.

Пример:

Показываем сообщение перед отправкой Ajax запроса.

1
2
3
$( document ).ajaxSend(function( event, request, settings ) {
$( "#msg" ).append( "<li>Starting request at " + settings.url + "</li>" );
});