Merge branch 'master' of https://github.com/scottgonzalez/jquery
[jquery.git] / src / ajax / jsonp.js
index f4b324e..1df5dd4 100644 (file)
@@ -1,7 +1,7 @@
 (function( jQuery ) {
 
 var jsc = jQuery.now(),
-       jsre = /\=(?:\?|%3F)(&|$)/i,
+       jsre = /(\=)(?:\?|%3F)(&|$)|()(?:\?\?|%3F%3F)()/i,
        rquery_jsonp = /\?/;
 
 // Default jsonp settings
@@ -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 ||
@@ -25,8 +24,8 @@ jQuery.ajax.prefilter("json jsonp", function(s, originalSettings) {
 
                var jsonpCallback = s.jsonpCallback =
                                jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
-                       url = s.url.replace(jsre, "=" + jsonpCallback + "$1"),
-                       data = s.url === url && typeof(s.data) === "string" ? s.data.replace(jsre, "=" + jsonpCallback + "$1") : s.data;
+                       url = s.url.replace(jsre, "$1" + jsonpCallback + "$2"),
+                       data = s.url === url && typeof(s.data) === "string" ? s.data.replace(jsre, "$1" + jsonpCallback + "$2") : s.data;
 
                if ( url === s.url && data === s.data ) {
                        url += (rquery_jsonp.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
@@ -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,