/**
 * @class Ext.Ajax
 * @extend Ext.data.Connection
 * @singleton
 *
 * A singleton instance of an `{@link Ext.data.Connection}`. This class is used to
 * communicate with your server side code. It can be used as follows:
 *
 *      Ext.Ajax.request({
 *          url: 'ajax_demo/sample.json',
 *
 *          success: function(response, opts) {
 *              var obj = Ext.decode(response.responseText);
 *              console.dir(obj);
 *          },
 *
 *          failure: function(response, opts) {
 *              console.log('server-side failure with status code ' + response.status);
 *          }
 *      });
 *
 * Default options for all requests can be set by changing a property on the Ext.Ajax class:
 *
 *      Ext.Ajax.setTimeout(60000); // 60 seconds
 *
 * Any options specified in the request method for the Ajax request will override any
 * defaults set on the `Ext.Ajax` singleton. In the code sample below, the timeout for the
 * request will be 60 seconds.
 *
 *      Ext.Ajax.setTimeout(120000); // 120 seconds
 *
 *      Ext.Ajax.request({
 *          url: 'page.aspx',
 *          timeout: 60000
 *      });
 *
 * In general, this class will be used for all Ajax requests in your application. The main
 * reason for creating a separate `{@link Ext.data.Connection}` is for a series of
 * requests that share common settings that are different to all other requests in the
 * application.
 */
 
/**
 * @cfg {Object} extraParams
 * @hide
 */
 
/**
 * @cfg {Object} defaultHeaders
 * @hide
 */
 
/**
 * @cfg {String} method
 * @hide
 */
 
/**
 * @cfg {Number} timeout
 * @hide
 */
 
/**
 * @cfg {Boolean} autoAbort
 * @hide
 */
 
/**
 * @cfg {Boolean} disableCaching
 * @hide
 */
 
/**
 * @property {Boolean} disableCaching
 * True to add a unique cache-buster param to GET requests. Defaults to true.
 */
 
/**
 * @property {String} url
 * The default URL to be used for requests to the server.
 * If the server receives all requests through one URL, setting this once is easier than
 * entering it on every request.
 */
 
/**
 * @property {Object} extraParams
 * An object containing properties which are used as extra parameters to each request made
 * by this object. Session information and other data that you need
 * to pass with each request are commonly put here.
 */
 
/**
 * @property {Object} defaultHeaders
 * An object containing request headers which are added to each request made by this object.
 */
 
/**
 * @property {String} method
 * The default HTTP method to be used for requests. Note that this is case-sensitive and
 * should be all caps (if not set but params are present will use `POST`, otherwise will
 * use `GET`.)
 */
 
/**
 * @property {Number} timeout
 * The timeout in milliseconds to be used for requests. Defaults to 30000.
 *
 * When a request fails due to timeout the XMLHttpRequest response object will
 * contain:
 *
 *     timedout: true
 */
 
/**
 * @property {Boolean} [autoAbort=false]
 * Whether a new request should abort any pending requests.
 */