X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fajax.js;h=8c02f2b7467c29aa041d7c470f6e4f971695c676;hb=54d965ffa50fcc308721d370f952251d3da3e017;hp=9f8e2384eeab0f260b9a209ae37193a6cb0854da;hpb=f7ed2aca562620f9424b1667170352e798e99ef3;p=jquery.git diff --git a/src/ajax.js b/src/ajax.js index 9f8e238..8c02f2b 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -121,9 +121,8 @@ jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".sp }; }); -jQuery.extend({ - - get: function( url, data, callback, type ) { +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { // shift arguments if data argument was omited if ( jQuery.isFunction( data ) ) { type = type || callback; @@ -132,13 +131,16 @@ jQuery.extend({ } return jQuery.ajax({ - type: "GET", + type: method, url: url, data: data, success: callback, dataType: type }); - }, + }; +}); + +jQuery.extend({ getScript: function( url, callback ) { return jQuery.get(url, null, callback, "script"); @@ -148,23 +150,6 @@ jQuery.extend({ return jQuery.get(url, data, callback, "json"); }, - post: function( url, data, callback, type ) { - // shift arguments if data argument was omited - if ( jQuery.isFunction( data ) ) { - type = type || callback; - callback = data; - data = {}; - } - - return jQuery.ajax({ - type: "POST", - url: url, - data: data, - success: callback, - dataType: type - }); - }, - ajaxSetup: function( settings ) { jQuery.extend( jQuery.ajaxSettings, settings ); }, @@ -198,7 +183,7 @@ jQuery.extend({ "*": "*/*" }, - autoDataType: { + contents: { xml: /xml/, html: /html/, json: /json/ @@ -223,7 +208,7 @@ jQuery.extend({ // List of data converters // 1) key format is "source_type destination_type" (a single space in-between) // 2) the catchall symbol "*" can be used for source_type - dataConverters: { + converters: { // Convert anything to text "* text": window.String, @@ -413,7 +398,7 @@ jQuery.extend({ oneConv, convertion, dataTypes = s.dataTypes, - dataConverters = s.dataConverters, + converters = s.converters, responses = { "xml": "XML", "text": "Text" @@ -430,17 +415,19 @@ jQuery.extend({ if ( i ) { + prev = dataTypes[ i - 1 ]; + if ( prev !== "*" && current !== "*" && prev !== current ) { oneConv = conv1 = - dataConverters[ ( conversion = prev + " " + current ) ] || - dataConverters[ "* " + current ]; + converters[ ( conversion = prev + " " + current ) ] || + converters[ "* " + current ]; if ( oneConv !== true ) { if ( ! oneConv && prev !== "text" && current !== "text" ) { - conv1 = dataConverters[ prev + " text" ] || dataConverters[ "* text" ]; - conv2 = dataConverters[ "text " + current ]; + conv1 = converters[ prev + " text" ] || converters[ "* text" ]; + conv2 = converters[ "text " + current ]; } if ( oneConv || conv1 && conv2 ) { @@ -455,8 +442,6 @@ jQuery.extend({ response = s.dataFilter( response ); dataTypes = s.dataTypes; } - - prev = current; } // We have a real success @@ -504,9 +489,10 @@ jQuery.extend({ } } - // Attach deferreds - jXHR.success = jXHR.then = deferred.then; - jXHR.error = jXHR.fail = deferred.fail; + // Attach deferreds + deferred.promise( jXHR ); + jXHR.success = jXHR.then; + jXHR.error = jXHR.fail; jXHR.complete = completeDeferred.then; // Remove hash character (#7531: and string promotion) @@ -856,7 +842,7 @@ jQuery.each( [ "prefilter" , "transport" ] , function( _ , name ) { // (for those transports that can give text or xml responses) function determineDataType( s , ct , text , xml ) { - var autoDataType = s.autoDataType, + var contents = s.contents, type, regexp, dataTypes = s.dataTypes, @@ -866,8 +852,8 @@ function determineDataType( s , ct , text , xml ) { // Auto (xml, json, script or text determined given headers) if ( transportDataType === "*" ) { - for ( type in autoDataType ) { - if ( ( regexp = autoDataType[ type ] ) && regexp.test( ct ) ) { + for ( type in contents ) { + if ( ( regexp = contents[ type ] ) && regexp.test( ct ) ) { transportDataType = dataTypes[0] = type; break; } @@ -886,7 +872,7 @@ function determineDataType( s , ct , text , xml ) { response = text; - // If it's not really text, defer to dataConverters + // If it's not really text, defer to converters if ( transportDataType !== "text" ) { dataTypes.unshift( "text" ); }