Moved jQuery.ajax.prefilter and jQuery.ajax.transport to jQuery.ajaxPrefilter and jQuery.ajaxTransport so that proxying the ajax method doesn't turn into a nightmare. Thanks go to scott_gonzalez and DaveMethvin for pointing out the issue. Also made ajaxSetup return "this" to enable chainable definitions -- jQuery.ajaxSetup(...).ajaxPrefilter(...).ajaxTransport(...).

This commit is contained in:
jaubourg 2011-01-13 18:33:24 +01:00
parent 44fc87f66c
commit a8fa5f2ec1
4 changed files with 11 additions and 12 deletions

View file

@ -161,6 +161,7 @@ jQuery.extend({
ajaxSetup: function( settings ) {
jQuery.extend( true, jQuery.ajaxSettings, settings );
return this;
},
ajaxSettings: {
@ -599,7 +600,7 @@ jQuery.extend({
}
// Get transport
transport = jQuery.ajax.prefilter( s , options ).transport( s );
transport = jQuery.ajaxPrefilter( s , options ).ajaxTransport( s );
// Watch for a new set of requests
if ( s.global && jQuery.active++ === 0 ) {
@ -849,7 +850,7 @@ function ajax_selectOrExecute( structure , s ) {
}
}
return noSelect ? jQuery.ajax : selected;
return noSelect ? jQuery : selected;
}
// Add an element to one of the structures in ajaxSettings
@ -908,13 +909,13 @@ function ajax_addElement( structure , args ) {
}
}
return jQuery.ajax;
return jQuery;
}
// Install prefilter & transport methods
jQuery.each( [ "prefilter" , "transport" ] , function( _ , name ) {
_ = name + "s";
jQuery.ajax[ name ] = function() {
jQuery.each( [ "Prefilter" , "Transport" ] , function( _ , name ) {
_ = name.toLowerCase() + "s";
jQuery[ "ajax" + name ] = function() {
return ajax_addElement( _ , arguments );
};
} );

View file

@ -10,12 +10,11 @@ jQuery.ajaxSetup({
jsonpCallback: function() {
return "jsonp" + jsc++;
}
});
// Normalize jsonp queries
// 1) put callback parameter in url or data
// 2) sneakily ensure transportDataType is always jsonp for jsonp requests
jQuery.ajax.prefilter("json jsonp", function(s, originalSettings) {
}).ajaxPrefilter("json jsonp", function(s, originalSettings) {
if ( s.dataTypes[ 0 ] === "jsonp" ||
originalSettings.jsonp ||
@ -38,7 +37,7 @@ jQuery.ajax.prefilter("json jsonp", function(s, originalSettings) {
}
// Bind transport to jsonp dataType
}).transport("jsonp", function(s) {
}).ajaxTransport("jsonp", function(s) {
// Put callback in place
var responseContainer,

View file

@ -14,10 +14,9 @@ jQuery.ajaxSetup({
converters: {
"text script": jQuery.globalEval
}
});
// Bind script tag hack transport
jQuery.ajax.transport("script", function(s) {
}).ajaxTransport("script", function(s) {
// Handle cache special case
if ( s.cache === undefined ) {

View file

@ -10,7 +10,7 @@ var // Next active xhr id
xhrUnloadAbortInstalled;
jQuery.ajax.transport( function( s , determineDataType ) {
jQuery.ajaxTransport( function( s , determineDataType ) {
// Cross domain only allowed if supported through XMLHttpRequest
if ( ! s.crossDomain || jQuery.support.cors ) {