Ajax error
함수 의 필수 매개 변수 는 다음 jqXHR, exception
과 같이 사용할 수 있습니다.
$.ajax({
url: 'some_unknown_page.html',
success: function (response) {
$('#post').html(response.responseText);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
},
});
데모 피들
매개 변수
jqXHR :
실제로 다음과 같은 오류 객체입니다.
다음 과 같은 함수 console.log
내부 를 사용하여 자신의 브라우저 콘솔에서 이것을 볼 수도 있습니다 error
.
error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}
우리는 status
상태 = 404를 얻는다면 요청 된 페이지를 찾을 수 없다는 것을 의미하는 것처럼이 객체 의 속성을 사용하여 오류 코드를 얻습니다. 전혀 존재하지 않습니다. 해당 상태 코드를 기반으로 사용자를 로그인 페이지 또는 비즈니스 로직에 필요한 것으로 리디렉션 할 수 있습니다.
예외:
예외 유형을 표시하는 문자열 변수입니다. 따라서 404 오류가 발생하면 exception
텍스트는 단순히 '오류'입니다. 마찬가지로 다른 예외 텍스트로 '시간 초과', '중지'가 나타날 수 있습니다.
중단 공지 사항 :jqXHR.success()
, jqXHR.error()
및 jqXHR.complete()
콜백은 jQuery를 1.8로 사용되지 않습니다. 그들의 궁극적 인 제거를위한 코드를 준비하려면, 사용 jqXHR.done()
, jqXHR.fail()
및 jqXHR.always()
대신.
따라서 jQuery 1.8 이상을 사용하는 경우 다음 과 같은 성공 및 오류 함수 논리를 업데이트해야합니다.
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
.done(function (response) {
// success logic here
$('#post').html(response.responseText);
})
.fail(function (jqXHR, exception) {
// Our error logic here
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
})
.always(function () {
alert("complete");
});
그것이 도움이되기를 바랍니다!
dataType
그렇지 않습니다datatype
.