Skip to content
Permalink
Browse files
Changed dataConverters key format.
  • Loading branch information
unknown authored and unknown committed Dec 24, 2010
1 parent 11642ba commit d303687
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 30 deletions.
@@ -238,36 +238,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
}
},

@@ -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 );
@@ -12,7 +12,7 @@ jQuery.extend( true, jQuery.ajaxSettings , {
},

dataConverters: {
"text => script": jQuery.globalEval
"text script": jQuery.globalEval
}
} );

@@ -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 ) );
@@ -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' );

0 comments on commit d303687

Please sign in to comment.