Commit eb47553e authored by byroot's avatar byroot Committed by jaubourg

Don't try and convert data for 204 No Content responses. Fixes #13292. Fixes #13261.

parent 21af3a92
...@@ -624,12 +624,17 @@ jQuery.extend({ ...@@ -624,12 +624,17 @@ jQuery.extend({
} }
} }
// If not modified // if no content
if ( status === 304 ) { if ( status === 204 ) {
isSuccess = true;
statusText = "nocontent";
// if not modified
} else if ( status === 304 ) {
isSuccess = true; isSuccess = true;
statusText = "notmodified"; statusText = "notmodified";
// If we have data // If we have data, let's convert it
} else { } else {
isSuccess = ajaxConvert( s, response ); isSuccess = ajaxConvert( s, response );
statusText = isSuccess.state; statusText = isSuccess.state;
......
<?php
header('HTTP/1.0 204 No Content');
?>
\ No newline at end of file
...@@ -1498,6 +1498,26 @@ module( "ajax", { ...@@ -1498,6 +1498,26 @@ module( "ajax", {
strictEqual( ajaxXML.find("tab").length, 3, "Parsed node was added properly" ); strictEqual( ajaxXML.find("tab").length, 3, "Parsed node was added properly" );
} }
}); });
ajaxTest( "#13292 - jQuery.ajax() - converter is bypassed for 204 requests", 3, {
url: "data/nocontent.php",
dataType: "testing",
converters: {
"* testing": function() {
throw "converter was called";
}
},
success: function( data, status, jqXHR ) {
strictEqual( jqXHR.status, 204, "status code is 204" );
strictEqual( status, "nocontent", "status text is 'nocontent'" );
strictEqual( data, undefined, "data is undefined" );
},
error: function( _, status, error ) {
ok( false, "error" );
strictEqual( status, "parsererror", "Parser Error" );
strictEqual( error, "converter was called", "Converter was called" );
}
});
//----------- jQuery.ajaxPrefilter() //----------- jQuery.ajaxPrefilter()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment