programing

jQuery AJAX 오류를 어떻게 잡을 수 있습니까?

lovejava 2023. 9. 1. 20:21

jQuery AJAX 오류를 어떻게 잡을 수 있습니까?

AJAX 요청이 사이트에 제출되면 jQuery 약속 접근 방식으로 서버 측 오류를 쉽게 처리합니다..done(),.fail()등. 그러나 일부 요청(예: 잘못된 사이트 또는 교차 오리진 요청을 수락하지 않는 사이트)의 경우 통화가 이루어지면 즉시 예외가 발생합니다.다음은 콘솔의 한 가지 오류의 예입니다.

XMLHttpRequest를 로드할 수 없습니다.http://someotherserver/api/blahblah.기원.http://localhost:52625액세스-제어-허용-원산지에서 허용되지 않습니다.

네, 저는 CORS에 대해 알고 있습니다. 그것은 문제가 아닙니다.실제로 서버 IP/이름이 올바른지 테스트하기 위해 웹 API 호출을 시도하는 중입니다.

나는 알고 있습니다.errorjQuery 요청 구문의 옵션:

$.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