programing

$.get()에서 오류를 처리하는 방법

javamemo 2023. 10. 22. 19:22
반응형

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

반응형