var jsc = jQuery.now(),
jsre = /\=\?(&|$)/,
- rquery = /\?/;
+ rquery_jsonp = /\?/;
// Default jsonp callback name
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" ||
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 ) {
}, 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 );