$.get()에서 오류를 처리하는 방법
get()을 사용하고 원격 url/file을 호출하는 jquery 코드가 있습니다.여기서 오는 오류를 해결하는 가장 좋은 방법이 무엇인지 알고 싶습니다.
제가 하는 일은 다음과 같습니다.
$(document).ready(function() {
$.ajaxSetup({
error: function(x, e) {
if (x.status == 0) {
alert(' Check Your Network.');
}
else if (x.status == 404) {
alert('Requested URL not found.');
} else if (x.status == 500) {
alert('Internel Server Error.');
} else {
alert('Unknow Error.\n' + x.responseText);
}
}
});
$.get("HTMLPage.htm", function(data) {
alert(data);
$('#mydiv').html(data);
});
});
이거 잘 되네요.더 좋은 방법이 없을까요?
ref:http://www.maheshchari.com/jquery-ajax-error-handling/
jQuery 1.5부터는 모든 jQuery의 Ajax 메서드가 XMLHTTPRequest 개체의 상위 집합을 반환합니다.$.get()에서 반환되는 이 jQuery XHR 개체 또는 "jqXHR"은 Promise 인터페이스를 구현하여 Promise의 모든 속성, 메서드 및 동작을 제공합니다.
var jqxhr = $.get( "example.php", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
$.ajaxSetup을 사용하는 것은 모든 ajax 호출에 대해 전역적입니다.$.get 함수에는 오류 콜백이 없으므로 $.ajaxSetup에서 오류 처리기를 정의하는 것이 오류를 처리할 수 있는 유일한 방법입니다.$.ajax를 사용하면 $.ajax 호출에서 오류 처리기를 이렇게 정의할 수 있습니다.
$.ajax({
url: "HTMLPage.htm",
success: function(data) {
alert(data);
$('#mydiv').html(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 0) {
alert(' Check Your Network.');
} else if (XMLHttpRequest.status == 404) {
alert('Requested URL not found.');
} else if (XMLHttpRequest.status == 500) {
alert('Internel Server Error.');
} else {
alert('Unknow Error.\n' + XMLHttpRequest.responseText);
}
}
});
이는 이 ajax 호출에만 해당하므로 보다 구체적인 오류 메시지를 가질 수 있습니다.그러나 글로벌 오류 처리기를 사용하는 것도 효과가 있습니다.
$(문서) 외부에서 함수를 정의할 수 있습니다.이렇게 준비된 ()
$(document).ready(function() {
$.ajaxSetup({
error: AjaxError
});
$.get("HTMLPage.htm", GetSuccess);
});
function AjaxError(x, e) {
if (x.status == 0) {
alert(' Check Your Network.');
} else if (x.status == 404) {
alert('Requested URL not found.');
} else if (x.status == 500) {
alert('Internel Server Error.');
} else {
alert('Unknow Error.\n' + x.responseText);
}
}
function GetSuccess(data) {
alert(data);
$('#mydiv').html(data);
}
http://api.jquery.com/jQuery.ajax/ 에서 복사/paste:
statusCode(1.5 추가) {}
응답에 해당 코드가 있을 때 호출되는 숫자 HTTP 코드와 함수의 맵입니다.예를 들어, 응답 상태가 404일 때 다음이 경고합니다.$.ajax({ statusCode: {404: function() { alert('page not found'); } });
요청이 성공하면 상태 코드 함수는 성공 콜백과 동일한 매개 변수를 사용하고, 오류가 발생하면 오류 콜백과 동일한 매개 변수를 사용합니다.
언급URL : https://stackoverflow.com/questions/2175756/how-to-handle-error-in-get
'programing' 카테고리의 다른 글
Momentjs와의 어제 데이트를 어떻게 얻을 수 있습니까? (0) | 2023.10.27 |
---|---|
워드프레스에서 포스트 타이틀을 얻는 방법? (0) | 2023.10.22 |
AngularJS $resource 오류 - TypeError: 개체 #에 'push' 메서드가 없습니다. (0) | 2023.10.22 |
printf 형식 지정(%d 대 %u) (0) | 2023.10.22 |
워드프레스 크론은 wp_mail()을 발사하지 않고 php mail() 기능을 합니다. (0) | 2023.10.22 |