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

@ -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 ) {