원문 링크 http://api.jquery.com/ajaxError/
개요 : Ajax 요청에 대해 에러가 발생되면 호출될 핸들러를 등록합니다. 이것은 Ajax 이벤트 입니다.
- .ajaxError( handler(event, jqXHR, ajaxSettings, thrownError) )
- handler(event, jqXHR, ajaxSettings, thrownError) 호출될 함수
Ajax 요청이 에러가 났다면 jQuery는 ajaxError
이벤트를 발생시킵니다. 모든 핸들러는 .ajaxError()
함수 내에서 정의됙 실행됩니다.
이 함수가 동작하는 것을 보기위해 기본적인 Ajax 요청을 만들 수 있습니다.
<button class="trigger">Trigger</button> <div class="result"></div> <div class="log"></div>
이벤트 핸들러를 작성하면 :
$("div.log").ajaxError(function() { $(this).text( "Triggered ajaxError handler." ); });
자, jQuery 함수를 통해 Ajax를 실행해 보겠습니다.
$("button.trigger").click(function() { $("div.result").load( "ajax/missing.html" ); });
Ajax가 실행되면 해당 파일이 없기 때문에 에러가 발생하게 됩니다. 그리고 에러 메시지가 표시되게 됩니다.
Note: .ajaxComplete()
함수는 jQuery 객체에 의해 만들어지기 때문에, this
키워드는 콜백 함수내에서 선택되어진 요소를 지칭하게 됩니다.
Ajax 요청이 완료가 되는것에 관계없이 모든 ajaxError
핸들러가 실행됩니다. 만약 요청들을 구분해서 제어하기 위해서는 핸들러에 파라미터를 줄 필요가 있습니다. 각 요청마다 ajaxError
핸들러가 실행되는데, 인자들로 event 객체, jqXHR
겍체, 그리고 세팅에 관련된 settings 객체들을 가집니다. 만약 요청이 어떤 이유로 실패하게 되면 JavaScript는 예외(exception)를 발생시키고, 이 예외(exception) 객체는 4번째 인자로 넘어오게 됩니다. 예를 들어, 특정한 URL을 상대로만 처리 이벤트의 콜백을 제한할 수 있는 것입니다.
$( "div.log" ).ajaxError(function(e, jqxhr, settings, exception) { if ( settings.url == "ajax/missing.html" ) { $(this).text( "Triggered ajaxError handler." ); } });
예 제
Ajax 요청이 실패할 경우 메시지를 보여줍니다.
$("#msg").ajaxError(function(event, request, settings){ $(this).append("<li>Error requesting page " + settings.url + "</li>"); });
Ajax라서 미리보기가 없네요. 좀 아쉽긴 하지만 직접 페이지를 만드셔서 테스트를 하셔야 되는데... 그게 어렵다는게 함정이네요. APM 이라도 설치하셔서 간단하게 테스트 환경을 구성해 보세요. APM 에 대해 잘 모르시면 검색하심 됩니다. 걍 튀어나와요.
그럼 즐프하세요.
※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.
'프로그래밍 > jQuery' 카테고리의 다른 글
ajaxStart() Ajax 요청이 시작될 때 호출되는 함수 (0) | 2012.06.19 |
---|---|
jQuery.ajaxSetup() Ajax 옵션 값을 설정하는 함수 (0) | 2012.06.19 |
ajaxSend() Ajax 요청을 보내기 전에 호출되는 이벤트 (0) | 2012.06.19 |
jQuery.ajaxPrefilter() $.ajax() 함수 호출 전 Ajax 옵션 수정 (0) | 2012.06.19 |
ajaxComplete() Ajax가 완료되면 호출 (4) | 2012.06.15 |
jQuery.ajax() HTTP 비동기 데이터 교환 (0) | 2012.06.12 |
toggle(), 요소 표시 또는 숨기기, 토글하기 (0) | 2012.05.08 |
jQuery .stop(), 애니메이션 효과 멈춤 (0) | 2012.05.08 |