Changed dataConverters key format.
This commit is contained in:
parent
524bf39400
commit
22e28b01e6
25
src/ajax.js
25
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
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
} );
|
||||
|
||||
|
|
10
src/xhr.js
10
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 ) );
|
||||
|
|
|
@ -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' );
|
||||
|
|
Loading…
Reference in a new issue