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
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
|
// 3) selection will start with transport dataType and THEN go to "*" if needed
|
||||||
transports: {},
|
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
|
// List of data converters
|
||||||
// 1) key format is "source_type destination_type" (a single space in-between)
|
// 1) key format is "source_type destination_type" (a single space in-between)
|
||||||
// 2) the catchall symbol "*" can be used for source_type
|
// 2) the catchall symbol "*" can be used for source_type
|
||||||
|
@ -230,8 +205,8 @@ jQuery.extend({
|
||||||
// Convert anything to text
|
// Convert anything to text
|
||||||
"* text": window.String,
|
"* text": window.String,
|
||||||
|
|
||||||
// Text to html (no transformation)
|
// Text to html (true = no transformation)
|
||||||
"text html": window.String,
|
"text html": true,
|
||||||
|
|
||||||
// Evaluate text as a json expression
|
// Evaluate text as a json expression
|
||||||
"text json": jQuery.parseJSON,
|
"text json": jQuery.parseJSON,
|
||||||
|
|
62
src/xhr.js
62
src/xhr.js
|
@ -231,7 +231,6 @@ jQuery.xhr = function( _native ) {
|
||||||
oneConv,
|
oneConv,
|
||||||
convertion,
|
convertion,
|
||||||
dataTypes = s.dataTypes,
|
dataTypes = s.dataTypes,
|
||||||
dataCheckers = s.dataCheckers,
|
|
||||||
dataConverters = s.dataConverters,
|
dataConverters = s.dataConverters,
|
||||||
dataFilter = s.dataFilter,
|
dataFilter = s.dataFilter,
|
||||||
responses = {
|
responses = {
|
||||||
|
@ -243,51 +242,40 @@ jQuery.xhr = function( _native ) {
|
||||||
|
|
||||||
current = dataTypes[ i ];
|
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 ] ) {
|
if ( responses[ current ] ) {
|
||||||
xhr[ "response" + responses[ current ] ] = response;
|
xhr[ "response" + responses[ current ] ] = response;
|
||||||
responses[ current ] = 0;
|
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;
|
dataTypes = s.dataTypes;
|
||||||
dataFilter = 0;
|
|
||||||
i--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prev = current;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We have a real success
|
// We have a real success
|
||||||
|
|
Loading…
Reference in a new issue