Cleaning up trailing whitespace again.
[jquery.git] / src / transports / jsonp.js
index 2bdce23..5cfb783 100644 (file)
@@ -2,7 +2,7 @@
 
 var jsc = jQuery.now(),
        jsre = /\=\?(&|$)/,
-       rquery = /\?/;
+       rquery_jsonp = /\?/;
 
 // Default jsonp callback name
 jQuery.ajaxSettings.jsonpCallback = function() {
@@ -11,13 +11,15 @@ jQuery.ajaxSettings.jsonpCallback = function() {
 
 // Normalize jsonp queries
 // 1) put callback parameter in url or data
-// 2) ensure transportDataType is json
+// 2) sneakily ensure transportDataType is json
 // 3) ensure options jsonp is always provided so that jsonp requests are always
 //    json request with the jsonp option set
-jQuery.xhr.prefilter( function(s) {
-       
-       var transportDataType = s.dataTypes[0];
-       
+jQuery.ajax.prefilter("json jsonp", function(s) {
+
+       var transportDataType = s.dataTypes[ 0 ];
+
+       s.dataTypes[ 0 ] = "json";
+
        if ( s.jsonp ||
                transportDataType === "jsonp" ||
                transportDataType === "json" && ( jsre.test(s.url) || typeof(s.data) === "string" && jsre.test(s.data) ) ) {
@@ -27,38 +29,34 @@ jQuery.xhr.prefilter( function(s) {
                                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;
-                       
+
                if ( url == s.url && data == s.data ) {
-                       url = url += (rquery.test( url ) ? "&" : "?") + jsonp + "=" + jsonpCallback;
+                       url = url += (rquery_jsonp.test( url ) ? "&" : "?") + jsonp + "=" + jsonpCallback;
                }
-               
+
                s.url = url;
                s.data = data;
-               
-               s.dataTypes[0] = "json";
        }
-       
-});
 
 // Bind transport to json dataType
-jQuery.xhr.bindTransport("json", function(s) {
+}).transport("json", function(s) {
 
        if ( s.jsonp ) {
-               
+
                // Put callback in place
                var responseContainer,
                        jsonpCallback = s.jsonpCallback,
                        previous = window[ jsonpCallback ];
-                       
+
                window [ jsonpCallback ] = function( response ) {
                        responseContainer = [response];
                };
-               
+
                s.complete = [function() {
 
                        // Set callback back to previous value
                        window[ jsonpCallback ] = previous;
-                       
+
                        // Call if it was a function and we have a response
                        if ( previous) {
                                if ( responseContainer && jQuery.isFunction ( previous ) ) {
@@ -68,22 +66,20 @@ jQuery.xhr.bindTransport("json", function(s) {
                                // else, more memory leak avoidance
                                try{ delete window[ jsonpCallback ]; } catch(e){}
                        }
-                       
+
                }, s.complete ];
-                               
+
                // Use data converter to retrieve json after script execution
-               s.dataConverters["script => json"] = function() {
+               s.converters["script json"] = function() {
                        if ( ! responseContainer ) {
-                               jQuery.error("Callback '" + jsonpCallback + "' was not called");
+                               jQuery.error( jsonpCallback + " was not called" );
                        }
                        return responseContainer[ 0 ];
                };
-               
+
                // Delegate to script transport
                return "script";
-               
        }
-
 });
 
-})(jQuery);
+})( jQuery );