Changed dataConverters key format.
authorunknown <Julian@.(none)>
Fri, 24 Dec 2010 17:02:45 +0000 (18:02 +0100)
committerjaubourg <j@ubourg.net>
Fri, 31 Dec 2010 03:05:52 +0000 (04:05 +0100)
src/ajax.js
src/transports/jsonp.js
src/transports/script.js
src/xhr.js
test/unit/ajax.js

index 6f09362..4f1fc6c 100644 (file)
@@ -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
                }
        },
 
index 6c9fb70..a685bb1 100644 (file)
@@ -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 );
index 27473ee..4f55dc5 100644 (file)
@@ -12,7 +12,7 @@ jQuery.extend( true, jQuery.ajaxSettings , {
        },
                
        dataConverters: {
-               "text => script": jQuery.globalEval
+               "text script": jQuery.globalEval
        }
 } );
 
index 94c6fe1..929c99f 100644 (file)
@@ -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 ) );
index beec2c5..88d66bf 100644 (file)
@@ -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' );