php - how jquery ajax fail callback gets triggered if server returns status 200 -
when php's e_fatal
error occurs server returns respons status 200
, responsetext: "↵fatal error: error description
. however, jquery's ajax triggers fail
callback instead of done
. why? status 200 should call done callback.
var jquerydeferred = $.ajax({ method: "post", url: url, datatype: "json", data: data }) jquerydeferred.done(function (response) { if (response.statuscode === 301) { window.location.assign(response.data || "/"); return; } else { customdeffered.resolve(response); } }).fail(function (response) { customdeffered.resolve(response); // callback called });
the jquery's ajax triggers fail callback instead of done. why?
because expected return type (like json, text, html etc.) not required.
consider example:
$.ajax({ url : "your url", type : "post", datatype : "json", success: function(response){ console.log(response); }, error: function(error){ alert(error.responsetext); } });
if return json object specified url success block , print response in browser's console.
but if there error , if returning string instead of json go error block.
Comments
Post a Comment