Simple jQuery code snippet to set loading image using ajaxSetup() so that every time an AJAX request is sent a loading image is displayed and when it returns the loading image is hidden. The reason for including the same code for complete and success is that the .load() function seems to ignore (or override) the complete function.
Demo
![ajaxsetup-demo ajaxsetup-demo](https://uploads.sitepoint.com/wp-content/uploads/jquery4u/2011/11/ajaxsetup-demo.jpg)
The Code
$.ajaxSetup({
beforeSend: function() {
$('#general-ajax-load ').fadeIn();
},
complete: function() {
$('#general-ajax-load ').fadeOut();
}
success: function() {
$('#general-ajax-load ').fadeOut();
}
});
Frequently Asked Questions (FAQs) about jQuery.ajaxSetup()
What is the main purpose of jQuery.ajaxSetup()?
The jQuery.ajaxSetup() method is primarily used to set default values for future AJAX requests. It’s a global method that affects all AJAX calls, so it’s typically used to define a set of default options that will apply to all subsequent AJAX requests. This can be particularly useful when you want to apply the same settings, such as timeout or cache, across multiple AJAX requests.
How does jQuery.ajaxSetup() differ from jQuery.ajax()?
While both jQuery.ajaxSetup() and jQuery.ajax() are used in handling AJAX requests, they serve different purposes. jQuery.ajaxSetup() is used to set default values for future AJAX requests, while jQuery.ajax() is used to make an individual AJAX request. The settings defined in jQuery.ajaxSetup() will apply to all AJAX requests, including those made with jQuery.ajax().
Can I override the settings defined in jQuery.ajaxSetup()?
Yes, you can override the settings defined in jQuery.ajaxSetup() for individual AJAX requests. When you make an AJAX request using jQuery.ajax(), you can specify options that will only apply to that particular request. These options will take precedence over the defaults set in jQuery.ajaxSetup().
What are some common options that can be set in jQuery.ajaxSetup()?
Some common options that can be set in jQuery.ajaxSetup() include ‘async’, ‘cache’, ‘contentType’, ‘data’, ‘dataType’, ‘global’, ‘ifModified’, ‘jsonp’, ‘jsonpCallback’, ‘password’, ‘processData’, ‘scriptCharset’, ‘timeout’, ‘traditional’, ‘type’, ‘url’, ‘username’, and ‘xhr’. Each of these options serves a specific purpose in controlling how the AJAX request is made and how the response is processed.
Is it possible to set a loading image with jQuery.ajaxSetup()?
While jQuery.ajaxSetup() itself does not provide a direct option to set a loading image, you can achieve this by using global AJAX event handlers. For example, you can use the ‘ajaxStart’ event to display a loading image when an AJAX request starts, and the ‘ajaxStop’ event to hide the image when the request completes.
Can I use jQuery.ajaxSetup() with other jQuery AJAX methods?
Yes, the settings defined in jQuery.ajaxSetup() apply to all jQuery AJAX methods, including jQuery.get(), jQuery.post(), and jQuery.load(). The default settings will be used unless they are overridden in the individual AJAX request.
How can I handle errors in jQuery.ajaxSetup()?
You can handle errors in jQuery.ajaxSetup() by defining the ‘error’ option. This option takes a function that will be called if the AJAX request fails. The function can take three parameters: the jqXHR object, a string describing the type of error, and an optional exception object if one occurred.
Can I use jQuery.ajaxSetup() to set default headers for AJAX requests?
Yes, you can use the ‘headers’ option in jQuery.ajaxSetup() to set default headers for all AJAX requests. The ‘headers’ option takes an object where each key-value pair represents a header name and its value.
Is it recommended to use jQuery.ajaxSetup()?
While jQuery.ajaxSetup() can be useful for setting default AJAX options, it should be used with caution as it affects all AJAX requests. If you only need to set options for specific requests, it’s often better to set them directly in the jQuery.ajax() call or other AJAX method.
Can I unset or reset the defaults set in jQuery.ajaxSetup()?
Yes, you can unset or reset the defaults set in jQuery.ajaxSetup() by calling the method with an empty object. This will effectively clear all previously set default options.
![Sam Deering](https://uploads.sitepoint.com/wp-content/uploads/2018/10/1539663963Sam-Deering-150x150.jpg)
Sam Deering has 15+ years of programming and website development experience. He was a website consultant at Console, ABC News, Flight Centre, Sapient Nitro, and the QLD Government and runs a tech blog with over 1 million views per month. Currently, Sam is the Founder of Crypto News, Australia.