X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fajax.js;h=5c655b58c4d0ad41b7cae150fae31eb678aefd57;hb=00fb8a9ad61eb6d13e6f6c7c668caa66074f05d1;hp=a50a039dd8d798ee57650d058005b6bd732870e1;hpb=1db2f02cc78b10bd638d70457645e1daa5c01344;p=jquery.git diff --git a/src/ajax.js b/src/ajax.js index a50a039..5c655b5 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -212,62 +212,22 @@ jQuery.extend({ // 3) selection will start with transport dataType and THEN go to "*" if needed transports: {}, - // Checkers - // 1) key is dataType - // 2) they are called to control successful response - // 3) error throws is used as error data - dataCheckers: { - - // Check if data is a string - "text": function(data) { - if ( typeof data != "string" ) { - jQuery.error("typeerror"); - } - }, - - // Check if xml has been properly parsed - "xml": function(data) { - var documentElement = data ? data.documentElement : data; - if ( ! documentElement || ! documentElement.nodeName ) { - jQuery.error("typeerror"); - } - if ( documentElement.nodeName == "parsererror" ) { - jQuery.error("parsererror"); - } - } - }, - // List of data converters - // 1) key format is "source_type => destination_type" (spaces required) + // 1) key format is "source_type destination_type" (a single space in-between) // 2) the catchall symbol "*" can be used for source_type dataConverters: { // Convert anything to text - "* => text": function(data) { - return "" + data; - }, + "* text": window.String, - // Text to html (no transformation) - "text => html": function(data) { - return data; - }, + // Text to html (true = no transformation) + "text html": true, // Evaluate text as a json expression - "text => json": jQuery.parseJSON, + "text json": jQuery.parseJSON, // Parse text as xml - "text => xml": function(data) { - var xml, parser; - if ( window.DOMParser ) { // Standard - parser = new DOMParser(); - xml = parser.parseFromString(data,"text/xml"); - } else { // IE - xml = new ActiveXObject("Microsoft.XMLDOM"); - xml.async="false"; - xml.loadXML(data); - } - return xml; - } + "text xml": jQuery.parseXML } }, @@ -339,7 +299,9 @@ function buildParams( prefix, obj, traditional, add ) { }); } else if ( !traditional && obj != null && typeof obj === "object" ) { - if ( jQuery.isEmptyObject( obj ) ) { + // If we see an array here, it is empty and should be treated as an empty + // object + if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) { add( prefix, "" ); // Serialize object item.