},
// timeout (ms)
- timeout: 0,
+ //timeout: 0,
/**
* Set the timeout of all AJAX requests to a specific amount of time.
* You can manually abort requests with the XMLHttpRequest's (returned by
* all ajax functions) abort() method.
*
+ * Deprecated. Use $.ajaxSetup instead.
+ *
* @example $.ajaxTimeout( 5000 );
* @desc Make all AJAX requests timeout after 5 seconds.
*
* @cat AJAX
*/
ajaxTimeout: function(timeout) {
- jQuery.timeout = timeout;
+ jQuery.ajaxSettings.timeout = timeout;
+ },
+
+ /**
+ * Setup global settings for AJAX requests.
+ *
+ * See $.ajax for a description of all available options.
+ *
+ * @example $.ajaxSetup( {
+ * url: "/xmlhttp/",
+ * global: false,
+ * type: "POST"
+ * } );
+ * @desc Sets the defaults for AJAX requests to the url "/xmlhttp/",
+ * disables global handlers and uses POST instead of GET
+ *
+ * @name $.ajaxSetup
+ * @type undefined
+ * @param Object settings Key/value pairs for ajax options
+ * @cat AJAX
+ */
+ ajaxSetup: function(settings) {
+ jQuery.extend(jQuery.ajaxSettings, settings);
},
+ ajaxSettings: {
+ global: true,
+ type: "GET",
+ timeout: 0,
+ contentType: "application/x-www-form-urlencoded",
+ processData: true,
+ async: true
+ },
+
// Last-Modified header cache for next request
lastModified: {},
*/
ajax: function( s ) {
// TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
- s = jQuery.extend({
- global: true,
- ifModified: false,
- type: "GET",
- timeout: jQuery.timeout,
- complete: null,
- success: null,
- error: null,
- dataType: null,
- url: null,
- data: null,
- contentType: "application/x-www-form-urlencoded",
- processData: true,
- async: true,
- beforeSend: null
- }, s);
+ s = jQuery.extend({}, jQuery.ajaxSettings, s);
// if data available
if ( s.data ) {
if(s.timeout > 0)
setTimeout(function(){
// Check to see if the request is still happening
- if (xml) {
+ if(xml) {
// Cancel the request
xml.abort();
- if ( !requestDone ) onreadystatechange( "timeout" );
-
- // Clear from memory
- xml = null;
+ if( !requestDone )
+ onreadystatechange( "timeout" );
}
}, s.timeout);
jQuery.handleError(s, xml, null, e);
}
+ // firefox 1.5 doesn't fire statechange for sync requests
+ if(!s.async)
+ onreadystatechange();
+
// return XMLHttpRequest to allow aborting the request etc.
return xml2;
},