Removed dataCheckers, added true as possible value for dataConverters indicating dataType equivalence (ie. no conversion has to be performed).
This commit is contained in:
parent
240d8b681e
commit
6f53be1839
2 changed files with 27 additions and 64 deletions
29
src/ajax.js
29
src/ajax.js
|
@ -197,31 +197,6 @@ jQuery.extend({
|
|||
// 3) selection will start with transport dataType and THEN go to "*" if needed
|
||||
transports: {},
|
||||
|
||||
// Checkers
|
||||
// 1) key is dataType
|
||||
// 2) they are called to control successful response
|
||||
// 3) error throws is used as error data
|
||||
dataCheckers: {
|
||||
|
||||
// Check if data is a string
|
||||
"text": function(data) {
|
||||
if ( typeof data != "string" ) {
|
||||
jQuery.error("typeerror");
|
||||
}
|
||||
},
|
||||
|
||||
// Check if xml has been properly parsed
|
||||
"xml": function(data) {
|
||||
var documentElement = data ? data.documentElement : data;
|
||||
if ( ! documentElement || ! documentElement.nodeName ) {
|
||||
jQuery.error("typeerror");
|
||||
}
|
||||
if ( documentElement.nodeName == "parsererror" ) {
|
||||
jQuery.error("parsererror");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// List of data converters
|
||||
// 1) key format is "source_type destination_type" (a single space in-between)
|
||||
// 2) the catchall symbol "*" can be used for source_type
|
||||
|
@ -230,8 +205,8 @@ jQuery.extend({
|
|||
// Convert anything to text
|
||||
"* text": window.String,
|
||||
|
||||
// Text to html (no transformation)
|
||||
"text html": window.String,
|
||||
// Text to html (true = no transformation)
|
||||
"text html": true,
|
||||
|
||||
// Evaluate text as a json expression
|
||||
"text json": jQuery.parseJSON,
|
||||
|
|
62
src/xhr.js
62
src/xhr.js
|
@ -231,7 +231,6 @@ jQuery.xhr = function( _native ) {
|
|||
oneConv,
|
||||
convertion,
|
||||
dataTypes = s.dataTypes,
|
||||
dataCheckers = s.dataCheckers,
|
||||
dataConverters = s.dataConverters,
|
||||
dataFilter = s.dataFilter,
|
||||
responses = {
|
||||
|
@ -243,51 +242,40 @@ jQuery.xhr = function( _native ) {
|
|||
|
||||
current = dataTypes[ i ];
|
||||
|
||||
if ( i ) {
|
||||
|
||||
prev = dataTypes[ i - 1 ];
|
||||
|
||||
if ( prev === "*" ) {
|
||||
|
||||
prev = current;
|
||||
|
||||
} else if ( current !== "*" && prev !== current ) {
|
||||
|
||||
oneConv = conv1 =
|
||||
dataConverters[ ( conversion = prev + " " + current ) ] ||
|
||||
dataConverters[ "* " + current ];
|
||||
|
||||
if ( ! oneConv && prev !== "text" && current !== "text" ) {
|
||||
conv1 = dataConverters[ prev + " text" ] || dataConverters[ "* text" ];
|
||||
conv2 = dataConverters[ "text " + current ];
|
||||
}
|
||||
if ( oneConv || conv1 && conv2 ) {
|
||||
response = oneConv ? conv1( response ) : conv2( conv1( response ) );
|
||||
} else {
|
||||
throw "no " + conversion;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
checker = dataCheckers[ current ];
|
||||
|
||||
if ( response != null && checker ) {
|
||||
checker( response );
|
||||
}
|
||||
|
||||
if ( responses[ current ] ) {
|
||||
xhr[ "response" + responses[ current ] ] = response;
|
||||
responses[ current ] = 0;
|
||||
}
|
||||
|
||||
if ( ! i && dataFilter ) {
|
||||
if ( i ) {
|
||||
|
||||
response = dataFilter( response );
|
||||
if ( prev !== "*" && current !== "*" && prev !== current ) {
|
||||
|
||||
oneConv = conv1 =
|
||||
dataConverters[ ( conversion = prev + " " + current ) ] ||
|
||||
dataConverters[ "* " + current ];
|
||||
|
||||
if ( oneConv !== true ) {
|
||||
|
||||
if ( ! oneConv && prev !== "text" && current !== "text" ) {
|
||||
conv1 = dataConverters[ prev + " text" ] || dataConverters[ "* text" ];
|
||||
conv2 = dataConverters[ "text " + current ];
|
||||
}
|
||||
|
||||
if ( oneConv || conv1 && conv2 ) {
|
||||
response = oneConv ? conv1( response ) : conv2( conv1( response ) );
|
||||
} else {
|
||||
throw "no " + conversion;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ( dataFilter ) {
|
||||
|
||||
response = s.dataFilter( response );
|
||||
dataTypes = s.dataTypes;
|
||||
dataFilter = 0;
|
||||
i--;
|
||||
}
|
||||
|
||||
prev = current;
|
||||
}
|
||||
|
||||
// We have a real success
|
||||
|
|
Loading…
Reference in a new issue