From 22e28b01e60e87b2454f88ca128fb84916b13564 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 24 Dec 2010 18:02:45 +0100 Subject: [PATCH] Changed dataConverters key format. --- src/ajax.js | 25 +++++-------------------- src/transports/jsonp.js | 6 ++---- src/transports/script.js | 2 +- src/xhr.js | 10 ++++++---- test/unit/ajax.js | 6 +++++- 5 files changed, 19 insertions(+), 30 deletions(-) diff --git a/src/ajax.js b/src/ajax.js index 6f09362e5..4f1fc6c42 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -223,36 +223,21 @@ jQuery.extend({ }, // List of data converters - // 1) key format is "source_type => destination_type" (spaces required) + // 1) key format is "source_type destination_type" (a single space in-between) // 2) the catchall symbol "*" can be used for source_type dataConverters: { // Convert anything to text - "* => text": function(data) { - return "" + data; - }, + "* text": window.String, // Text to html (no transformation) - "text => html": function(data) { - return data; - }, + "text html": window.String, // Evaluate text as a json expression - "text => json": jQuery.parseJSON, + "text json": jQuery.parseJSON, // Parse text as xml - "text => xml": function(data) { - var xml, parser; - if ( window.DOMParser ) { // Standard - parser = new DOMParser(); - xml = parser.parseFromString(data,"text/xml"); - } else { // IE - xml = new ActiveXObject("Microsoft.XMLDOM"); - xml.async="false"; - xml.loadXML(data); - } - return xml; - } + "text xml": jQuery.parseXML } }, diff --git a/src/transports/jsonp.js b/src/transports/jsonp.js index 6c9fb704e..a685bb196 100644 --- a/src/transports/jsonp.js +++ b/src/transports/jsonp.js @@ -70,18 +70,16 @@ jQuery.xhr.prefilter("json jsonp", 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 ); diff --git a/src/transports/script.js b/src/transports/script.js index 27473ee7e..4f55dc5ad 100644 --- a/src/transports/script.js +++ b/src/transports/script.js @@ -12,7 +12,7 @@ jQuery.extend( true, jQuery.ajaxSettings , { }, dataConverters: { - "text => script": jQuery.globalEval + "text script": jQuery.globalEval } } ); diff --git a/src/xhr.js b/src/xhr.js index 94c6fe165..929c99f9a 100644 --- a/src/xhr.js +++ b/src/xhr.js @@ -254,12 +254,14 @@ jQuery.xhr = function( _native ) { } else if ( current !== "*" && prev !== current ) { oneConv = conv1 = - dataConverters[ ( conversion = prev + " => " + current ) ] || - dataConverters[ "* => " + current ]; + dataConverters[ ( conversion = prev + " " + current ) ] || + dataConverters[ "* " + current ]; + + console.log( conversion ); if ( ! oneConv && prev !== "text" && current !== "text" ) { - conv1 = dataConverters[ prev + " => text" ] || dataConverters[ "* => text" ]; - conv2 = dataConverters[ "text => " + current ]; + conv1 = dataConverters[ prev + " text" ] || dataConverters[ "* text" ]; + conv2 = dataConverters[ "text " + current ]; } if ( oneConv || conv1 && conv2 ) { response = oneConv ? conv1( response ) : conv2( conv1( response ) ); diff --git a/test/unit/ajax.js b/test/unit/ajax.js index beec2c537..88d66bf47 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -707,6 +707,10 @@ test("jQuery.ajax - xml: non-namespace elements inside namespaced elements (over equals( jQuery("jsconf", resp).length, 1, 'jsconf in responseXML' ); equals( jQuery("thing", resp).length, 2, 'things in responseXML' ); start(); + }, + error: function(_1,_2,error) { + ok( false, error ); + start(); } }); }); @@ -1487,7 +1491,7 @@ test("jQuery.ajax() - json by content-type disabled with options", function() { }, success: function( text ) { equals( typeof text , "string" , "json wasn't auto-determined" ); - var json = this.dataConverters["text => json"]( text ); + var json = this.dataConverters["text json"]( text ); ok( json.length >= 2, "Check length"); equals( json[0].name, 'John', 'Check JSON: first, name' ); equals( json[0].age, 21, 'Check JSON: first, age' );