code: function addToPrefiltersOrTransports( structure ) {
  
  	// dataTypeExpression is optional and defaults to "*"
  	return function( dataTypeExpression, func ) {
  
  		if ( typeof dataTypeExpression !== "string" ) {
  			func = dataTypeExpression;
  			dataTypeExpression = "*";
  		}
  
  		var dataType, list, placeBefore,
  			dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ),
  			i = 0,
  			length = dataTypes.length;
  
  		if ( jQuery.isFunction( func ) ) {
  			// For each dataType in the dataTypeExpression
  			for ( ; i < length; i++ ) {
  				dataType = dataTypes[ i ];
  				// We control if we're asked to add before
  				// any existing element
  				placeBefore = /^\+/.test( dataType );
  				if ( placeBefore ) {
  					dataType = dataType.substr( 1 ) || "*";
  				}
  				list = structure[ dataType ] = structure[ dataType ] || [];
  				// then we add to the structure accordingly
  				list[ placeBefore ? "unshift" : "push" ]( func );
  			}
  		}
  	};
  }
docs: Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport