Fix jQuery.httpData to allow forcing of text data
authorMichael Geary <mike@geary.com>
Sun, 2 Jul 2006 02:11:37 +0000 (02:11 +0000)
committerMichael Geary <mike@geary.com>
Sun, 2 Jul 2006 02:11:37 +0000 (02:11 +0000)
ajax/ajax.js

index 5d6126a..632ed86 100644 (file)
@@ -174,11 +174,13 @@ jQuery.httpSuccess = function(r) {
                r.status == 304 ) || !r.status && location.protocol == "file:";
 };
 
                r.status == 304 ) || !r.status && location.protocol == "file:";
 };
 
-// Get the data out of an XMLHttpRequest
+// Get the data out of an XMLHttpRequest.
+// Return parsed XML if content-type header is "xml" and type is "xml" or omitted,
+// otherwise return plain text.
 jQuery.httpData = function(r,type) {
 jQuery.httpData = function(r,type) {
-       // Check the headers, or watch for a force override
-       return r.getResponseHeader("content-type").indexOf("xml") > 0 || 
-               type == "xml" ? r.responseXML : r.responseText;
+       var xml = ( !type || type == "xml" ) &&
+               r.getResponseHeader("content-type").indexOf("xml") >= 0;
+       return xml ? r.responseXML : r.responseText;
 };
 
 // Serialize an array of form elements or a set of
 };
 
 // Serialize an array of form elements or a set of