Skip to content
Permalink
Browse files

Renames determineDataType as determineResponse. Makes it more generic…

… as a first step into integrating the logic into the main ajax done callback. Also fixes some comments in ajax/xhr.js.
  • Loading branch information
jaubourg committed Jan 20, 2011
1 parent 3e1d3d0 commit ef86694ada757e5bc14227f8e5cc7d9d3a771da2
Showing with 27 additions and 27 deletions.
  1. +15 −16 src/ajax.js
  2. +12 −11 src/ajax/xhr.js
@@ -235,7 +235,7 @@ jQuery.extend({

// Utility function that handles dataType when response is received
// (for those transports that can give text or xml responses)
determineDataType: function( ct , text , xml ) {
determineResponse: function( responses , ct ) {

var s = this,
contents = s.contents,
@@ -246,7 +246,7 @@ jQuery.extend({
response;

// Auto (xml, json, script or text determined given headers)
if ( transportDataType === "*" ) {
if ( ct && transportDataType === "*" ) {

for ( type in contents ) {
if ( ( regexp = contents[ type ] ) && regexp.test( ct ) ) {
@@ -256,23 +256,22 @@ jQuery.extend({
}
}

// xml and parsed as such
if ( transportDataType === "xml" &&
xml &&
xml.documentElement /* #4958 */ ) {

response = xml;

// Text response was provided
} else {
// Get response
for( type in responses ) {
if ( type === transportDataType ) {
break;
}
}

response = text;
// Get final response
response = responses[ type ];

// If it's not really text, defer to converters
if ( transportDataType !== "text" ) {
dataTypes.unshift( "text" );
// If it's not the right dataType, handle the dataTypeList
if ( transportDataType !== type ) {
if ( transportDataType === "*" ) {
dataTypes.shift();
}

dataTypes.unshift( type );
}

return response;
@@ -12,8 +12,8 @@ var // Next active xhr id
// XHR used to determine supports properties
testXHR;

// Create the request object; Microsoft failed to properly
// (This is still attached to ajaxSettings for backward compatibility reasons)
// Create the request object
// (This is still attached to ajaxSettings for backward compatibility)
jQuery.ajaxSettings.xhr = window.ActiveXObject ?
/* Microsoft failed to properly
* implement the XMLHttpRequest in IE7 (can't request local files),
@@ -146,8 +146,9 @@ if ( jQuery.support.ajax ) {
// Get info
var status = xhr.status,
statusText,
response,
responseHeaders = xhr.getAllResponseHeaders();
responseHeaders = xhr.getAllResponseHeaders(),
responses = {},
xml = xhr.responseXML;

try { // Firefox throws an exception when accessing statusText for faulty cross-domain requests

@@ -184,15 +185,15 @@ if ( jQuery.support.ajax ) {
status
);

// Guess response & update dataType accordingly
response =
s.determineDataType(
xhr.getResponseHeader("content-type"),
xhr.responseText,
xhr.responseXML );
// Construct response list
if ( xml && xml.documentElement /* #4958 */ ) {
responses.xml = xml;
}
responses.text = xhr.responseText;

// Call complete
complete(status,statusText,response,responseHeaders);
complete(status,statusText,s.determineResponse( responses,
xhr.getResponseHeader( "content-type" ) ),responseHeaders);
}
}
};

0 comments on commit ef86694

Please sign in to comment.
You can’t perform that action at this time.