jQuery AJAX 오류를 어떻게 잡을 수 있습니까?
AJAX 요청이 사이트에 제출되면 jQuery 약속 접근 방식으로 서버 측 오류를 쉽게 처리합니다..done()
,.fail()
등. 그러나 일부 요청(예: 잘못된 사이트 또는 교차 오리진 요청을 수락하지 않는 사이트)의 경우 통화가 이루어지면 즉시 예외가 발생합니다.다음은 콘솔의 한 가지 오류의 예입니다.
XMLHttpRequest를 로드할 수 없습니다.
http://someotherserver/api/blahblah
.기원.http://localhost:52625
액세스-제어-허용-원산지에서 허용되지 않습니다.
네, 저는 CORS에 대해 알고 있습니다. 그것은 문제가 아닙니다.실제로 서버 IP/이름이 올바른지 테스트하기 위해 웹 API 호출을 시도하는 중입니다.
나는 알고 있습니다.error
jQuery 요청 구문의 옵션:
$.ajax({
url: remoteURL,
type: 'GET',
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
}).etc.etc.
오류는 여기서 처리되지만 예외는 여전히 콘솔에 기록됩니다.위의 것들을 포장하는 것이 타당해 보였습니다.try-catch
블록, 하지만 그건 도움이 되지 않는 것 같습니다.
나는 이 질문을 찾았지만 해결책은 jQuery 코드를 해킹하는 것입니다.이러한 오류를 감지하고 콘솔 로그를 막지 않는 더 나은 방법이 있습니까?
사용해 보십시오.
$.ajax({
url: remoteURL,
type: 'GET',
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
}).always(function(jqXHR, textStatus) {
if (textStatus != "success") {
alert("Error: " + jqXHR.statusText);
}
});
XHR 수신기:
$.ajax({
url: remoteURL,
type: 'GET',
xhr: function(){
var xhr = new window.XMLHttpRequest();
xhr.addEventListener("error", function(evt){
alert("an error occured");
}, false);
xhr.addEventListener("abort", function(){
alert("cancelled");
}, false);
return xhr;
},
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
});
당신은 구글 크롬에서 웹 개발자 콘솔을 사용할 수 있습니다.F12를 누릅니다.그리고 네트워크 탭을 사용하여 응답을 확인하고, 자바스크립트 및 jQuery 및 Ajax 오류의 경우 콘솔 탭을 사용할 수 있습니다.:)
Ajax 함수에 추가하여 사용해 보십시오.
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
언급URL : https://stackoverflow.com/questions/18864734/how-can-i-catch-jquery-ajax-errors
'programing' 카테고리의 다른 글
반복 가능 읽기 트랜잭션을 사용하는 경우에도 MariaDB 여러 개의 동일한 행 (0) | 2023.09.01 |
---|---|
j변수에 로드 쿼리 (0) | 2023.09.01 |
준비된 진술서, 상환청구서 및 성과 고려사항 (0) | 2023.09.01 |
교차 도메인 iframe의 DOM 콘텐츠 가져오기 (0) | 2023.09.01 |
jQuery 자동 완성 및 ASP.NET (0) | 2023.09.01 |