X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fajax.js;h=81225f2cbf9597af5b2628daeac98e66944c3d6d;hb=aa81bb5e458efd25981933c339ac1a0090e6eb0f;hp=1e0729f3fead843a4cdedfb6ba14c925b8071b75;hpb=a7678267d848fcef8775c8b9f4fa3e507b8cc5f4;p=jquery.git diff --git a/src/ajax.js b/src/ajax.js index 1e0729f..81225f2 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -195,10 +195,8 @@ jQuery.extend({ lastModified: {}, etag: {}, - ajax: function( s ) { - // Extend the settings, but re-extend 's' so that it can be - // checked again later (in the test suite, specifically) - s = jQuery.extend(true, {}, jQuery.ajaxSettings, s); + ajax: function( origSettings ) { + var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings); var jsonp, status, data, callbackContext = s.context || window, @@ -223,7 +221,7 @@ jQuery.extend({ // Build temporary JSONP function if ( s.dataType === "json" && (s.data && jsre.test(s.data) || jsre.test(s.url)) ) { - jsonp = "jsonp" + jsc++; + jsonp = s.jsonpCallback || ("jsonp" + jsc++); // Replace the =? sequence both in the query string and the data if ( s.data ) { @@ -237,7 +235,7 @@ jQuery.extend({ s.dataType = "script"; // Handle JSONP-style loading - window[ jsonp ] = function(tmp){ + window[ jsonp ] = window[ jsonp ] || function(tmp){ data = tmp; success(); complete(); @@ -333,7 +331,7 @@ jQuery.extend({ // Need an extra try/catch for cross domain requests in Firefox 3 try { // Set the correct header, if data is being sent - if ( s.data ) { + if ( s.data || origSettings && origSettings.contentType ) { xhr.setRequestHeader("Content-Type", s.contentType); } @@ -432,7 +430,7 @@ jQuery.extend({ // Fire the complete handlers complete(); - if ( isTimeout ) { + if ( isTimeout === "timeout" ) { xhr.abort(); } @@ -604,19 +602,19 @@ jQuery.extend({ // If an array was passed in, assume that it is an array // of form elements - if ( jQuery.isArray(a) || a.jquery ) + if ( jQuery.isArray(a) || a.jquery ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); }); - else + } else { // Encode parameters from object, recursively. If // jQuery.param.traditional is set, encode the "old" way // (the way 1.3.2 or older did it) jQuery.each( a, function buildParams( prefix, obj ) { - if ( jQuery.isArray(obj) ) + if ( jQuery.isArray(obj) ) { jQuery.each( obj, function(i,v){ // Due to rails' limited request param syntax, numeric array // indices are not supported. To avoid serialization ambiguity @@ -626,20 +624,20 @@ jQuery.extend({ add( prefix + ( param_traditional ? "" : "[]" ), v ); }); - else if ( typeof obj == "object" ) - if ( param_traditional ) + } else if ( typeof obj == "object" ) { + if ( param_traditional ) { add( prefix, obj ); - else + } else { jQuery.each( obj, function(k,v){ buildParams( prefix ? prefix + "[" + k + "]" : k, v ); }); - - else + } + } else { add( prefix, obj ); - + } }); - + } // Return the resulting serialization return s.join("&").replace(r20, "+"); }