Removed re-usability from jXHR object (no more open, send & onreadystatechange suppor...
[jquery.git] / src / transports / jsonp.js
index d73781f..f16b394 100644 (file)
@@ -2,7 +2,7 @@
 
 var jsc = jQuery.now(),
        jsre = /\=\?(&|$)/,
-       rquerymark = /\?/;
+       rquery_jsonp = /\?/;
 
 // Default jsonp callback name
 jQuery.ajaxSettings.jsonpCallback = function() {
@@ -11,12 +11,14 @@ 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) {
+jQuery.ajax.prefilter("json jsonp", function(s) {
        
-       var transportDataType = s.dataTypes[0];
+       var transportDataType = s.dataTypes[ 0 ];
+       
+       s.dataTypes[ 0 ] = "json";
        
        if ( s.jsonp ||
                transportDataType === "jsonp" ||
@@ -29,19 +31,15 @@ jQuery.xhr.prefilter( function(s) {
                        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 += (rquerymark.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 ) {
                
@@ -72,18 +70,16 @@ jQuery.xhr.bindTransport("json", function(s) {
                }, s.complete ];
                                
                // Use data converter to retrieve json after script execution
-               s.dataConverters["script => json"] = function() {
+               s.dataConverters["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 );