How to get the jQuery $.ajax error response text?

How to get the jQuery $.ajax error response text?

I am sending an error response to my jQuery.
However, I can not get the response text (in the example below this would be Gone to the beach)
The only thing jQuery says is ‘error’.
See this example for details:
php

jQuery
$.ajax({
type: “post”,
data: {id: 0},
cache: false,
url: “doIt.php”,
dataType: “text”,
error: function (request, error) {
console.log(arguments);
alert(” Can’t do because: ” + error);
},
success: function () {
alert(” Done ! “);
}
});

Now my result ist:
log:
[XMLHttpRequest readyState=4 status=500, “error”, undefined]

alert:

Can’t do because: error

Any ideas?

Solutions/Answers:

Solution 1:

Try:

error: function(xhr, status, error) {
  var err = eval("(" + xhr.responseText + ")");
  alert(err.Message);
}

Solution 2:

Look at the responseText property of the request parameter.

Solution 3:

For me, this simply works:

error: function(xhr, status, error) {
  alert(xhr.responseText);
}

Solution 4:

As ultimately suggested by this other answer and it’s comments on this page:

error: function(xhr, status, error) {
  var err = JSON.parse(xhr.responseText);
  alert(err.Message);
}

Solution 5:

This is what worked for me

    function showErrorMessage(xhr, status, error) {
        if (xhr.responseText != "") {

            var jsonResponseText = $.parseJSON(xhr.responseText);
            var jsonResponseStatus = '';
            var message = '';
            $.each(jsonResponseText, function(name, val) {
                if (name == "ResponseStatus") {
                    jsonResponseStatus = $.parseJSON(JSON.stringify(val));
                     $.each(jsonResponseStatus, function(name2, val2) {
                         if (name2 == "Message") {
                             message = val2;
                         }
                     });
                }
            });

            alert(message);
        }
    }

Solution 6:

you can try it too:

$(document).ajaxError(
    function (event, jqXHR, ajaxSettings, thrownError) {
        alert('[event:' + event + '], [jqXHR:' + jqXHR + '], [ajaxSettings:' + ajaxSettings + '], [thrownError:' + thrownError + '])');
    });

Related:  how to minify js files in order via grunt-contrib-uglify?