Fixes #7868. ResponseText is now properly propagated for error callbacks.
[jquery.git] / src / ajax.js
index d78542d..744476f 100644 (file)
@@ -464,6 +464,11 @@ jQuery.extend({
                        } else { // if not success, mark it as an error
 
                                        error = error || statusText;
+
+                                       // Set responseText if needed
+                                       if ( response ) {
+                                               jXHR.responseText = response;
+                                       }
                        }
 
                        // Set data for the fake xhr object
@@ -496,9 +501,9 @@ jQuery.extend({
 
                // Attach deferreds
                deferred.promise( jXHR );
-               jXHR.success = jXHR.complete;
+               jXHR.success = jXHR.done;
                jXHR.error = jXHR.fail;
-               jXHR.complete = completeDeferred.complete;
+               jXHR.complete = completeDeferred.done;
 
                // Remove hash character (#7531: and string promotion)
                s.url = ( "" + s.url ).replace( rhash , "" );
@@ -559,7 +564,7 @@ jQuery.extend({
                        }
 
                        // Set the correct header, if data is being sent
-                       if ( ( s.data && s.hasContent ) || options.contentType ) {
+                       if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
                                requestHeaders[ "content-type" ] = s.contentType;
                        }