jQuery에 오류 응답을 보내고 있습니다. 그러나 응답 텍스트를 얻을 수 없습니다 (아래 예 에서는 해변 으로 간 것 입니다 )
jQuery가 말하는 유일한 것은 ‘오류’입니다.
자세한 내용은이 예를 참조하십시오.
PHP
<?
header('HTTP/1.1 500 Internal Server Error');
print "Gone to the beach"
?>
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 ! ");
}
});
이제 내 결과는 다음과 같습니다.
로그:
[XMLHttpRequest readyState=4 status=500, "error", undefined]
경보:
할 수없는 이유 : error
어떤 아이디어?
답변
시험:
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
답변
나에게 이것은 간단하게 작동합니다.
error: function(xhr, status, error) {
alert(xhr.responseText);
}
답변
responseText
요청 매개 변수 의 특성을 보십시오 .
답변
이 다른 답변 과이 페이지에 대한 의견 에서 궁극적으로 제안한 것처럼 :
error: function(xhr, status, error) {
var err = JSON.parse(xhr.responseText);
alert(err.Message);
}
답변
이것이 나를 위해 일한 것입니다
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);
}
}
답변
이를 통해 “responseText”값뿐만 아니라 전체 응답을 볼 수 있습니다.
error: function(xhr, status, error) {
var acc = []
$.each(xhr, function(index, value) {
acc.push(index + ': ' + value);
});
alert(JSON.stringify(acc));
}
답변
당신도 그것을 시도 할 수 있습니다 :
$(document).ajaxError(
function (event, jqXHR, ajaxSettings, thrownError) {
alert('[event:' + event + '], [jqXHR:' + jqXHR + '], [ajaxSettings:' + ajaxSettings + '], [thrownError:' + thrownError + '])');
});