get: function( url, data, callback, type, ifModified ) {
// shift arguments if data argument was ommited
if ( data && data.constructor == Function ) {
- type = callback;
callback = data;
data = null;
}
* @cat AJAX
*/
getJSON: function( url, data, callback ) {
- if(callback)
- jQuery.get(url, data, callback, "json");
- else {
- jQuery.get(url, data, "json");
- }
+ jQuery.get(url, data, callback, "json");
},
/**
*
* (String) url - The URL of the page to request.
*
- * (String) data - A string of data to be sent to the server (POST only).
*
* (String) dataType - The type of data that you're expecting back from
* the server (e.g. "xml", "html", "script", or "json").
* function gets passed two arguments: The XMLHttpRequest object and a
* string describing the type the success of the request.
*
+ * (String) data - Data to be sent to the server. Converted to a query
+ * string, if not already a string. Is appended to the url for GET-requests.
+ * Override processData option to prevent processing.
+ *
+ * (String) contentType - When sending data to the server, use this content-type,
+ * default is "application/x-www-form-urlencoded", which is fine for most cases.
+ *
+ * (Boolean) processData - By default, data passed in as an object other as string
+ * will be processed and transformed into a query string, fitting to the default
+ * content-type "application/x-www-form-urlencoded". If you want to send DOMDocuments,
+ * set this option to false.
+ *
* @example $.ajax({
* type: "GET",
* url: "test.js",
success: null,
error: null,
dataType: null,
- data: null,
url: null,
+ data: null,
+ contentType: "application/x-www-form-urlencoded",
+ processData: true
}, s);
// if data available
if ( s.data ) {
// convert data if not already a string
- if (typeof s.data != 'string')
- s.data = jQuery.param(s.data)
+ if (s.processData && typeof s.data != 'string')
+ s.data = jQuery.param(s.data);
// append data to url for get requests
if( s.type.toLowerCase() == "get" )
// "?" + data or "&" + data (in case there are already params)
// Set the correct header, if data is being sent
if ( s.data )
- xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+ xml.setRequestHeader("Content-Type", s.contentType);
// Set the If-Modified-Since header, if ifModified mode.
if ( s.ifModified )
// Otherwise, assume that it's an object of key/value pairs
} else {
// Serialize the key/values
- for ( var j in a )
- s.push( j + "=" + encodeURIComponent( a[j] ) );
+ for ( var j in a ) {
+ //if one value is array then treat each array value in part
+ if (typeof a[j] == 'object') {
+ for (var k = 0; k < a[j].length; k++) {
+ s.push( j + "[]=" + encodeURIComponent( a[j][k] ) );
+ }
+ } else {
+ s.push( j + "=" + encodeURIComponent( a[j] ) );
+ }
+ }
}
// Return the resulting serialization