# .ajaxSend()

## ajaxSend ( handler(event, jqXHR, ajaxOptions) ) Returns: jQuery version added: 1.0

- handler(event, jqXHR, ajaxOptions)
  Type: Function
  The function to be invoked.

Description: Attach a function to be executed before an Ajax request is sent. This is an Ajax Event.

Whenever an Ajax request is about to be sent, jQuery triggers the `ajaxSend` event. Any and all handlers that have been registered with the `.ajaxSend()` method are executed at this time.

To observe this method in action, set up a basic Ajax load request:

    <div class="trigger">Trigger</div>
    <div class="result"></div>
    <div class="log"></div>

Attach the event handler to the document:

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

Now, make an Ajax request using any jQuery method:

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

When the user clicks the element with class `trigger` and the Ajax request is about to begin, the log message is displayed.

As of jQuery 1.8, the `.ajaxSend()` method should only be attached to `document`.

All `ajaxSend` handlers are invoked, regardless of what Ajax request is to be sent. If you must differentiate between the requests, use the parameters passed to the handler. Each time an `ajaxSend` handler is executed, it is passed the event object, the `jqXHR` object (in version 1.4, `XMLHttpRequest`object), and the settings object that was used in the creation of the Ajax request. For example, you can restrict the callback to only handling events dealing with a particular URL:

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

## Examples:

#### Example: Show a message before an Ajax request is sent.

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