programing

jquery ajax 호출 - .fail vs. : error

abcjava 2023. 3. 17. 19:30
반응형

jquery ajax 호출 - .fail vs. : error

어떤 걸로 할까요?

다른 쪽보다 한쪽을 사용해야 할 이유가 있나요?

에러 처리에는 어느 쪽이 좋습니까?

$.ajax({
    url: url,
    data: { start: start, end: end }
}).done(function(data, textStatus, jqXHR) {
    $('#myElement').append(data);
}).fail(function() {
    // report error    
});

또는

$.ajax({
    url: url,
    data: { start: start, end: end },
    success: function(data, textStatus, jqXHR) {
        $('#myElement').append(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        // report error
    }
});

두 옵션은 동일합니다.

단, 약속 스타일의 인터페이스(.fail()그리고..done())를 사용하면 요청을 작성하는 코드와 응답을 처리하는 코드를 분리할 수 있습니다.

AJAX 요청을 전송하고 jqXHR 개체를 반환하는 함수를 작성한 후 다른 함수를 호출하여 핸들러를 추가할 수 있습니다.

와 조합했을 경우.pipe()또, 복수의 AJAX 콜을 발신할 때의 네스트도 저감 할 수 있습니다.

$.ajax(...)
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    })
    .pipe(function() { 
        return $.ajax(...);
    });

다시 말씀드리자면...

성공 및 오류 접근법은 jQuery 1.8에서 권장되지 않습니다.

jQuery Ajax

폐지 통지:jqXHR.success(), jqXHR.error() 및 jqXHR.complete() 콜백은 jQuery 1.8에서 권장되지 않습니다.최종 삭제에 대비하여 코드를 준비하려면 jqXHR.done(), jqXHR.fail() 및 jqXHR.always()를 사용합니다.

체인 가능한 지연 객체 약속 스타일을 사용하면 보다 깔끔한 구조와 항상을 사용할 수 있습니다.

let data = {"key":"value"}

$.ajax({
    type: 'PUT',
    url: 'http://example.com/api',
    contentType: 'application/json',
    data: JSON.stringify(data), 
}).done(function () {
    console.log('SUCCESS');
}).fail(function (msg) {
    console.log('FAIL');
}).always(function (msg) {
    console.log('ALWAYS');
});

언급URL : https://stackoverflow.com/questions/13168572/call-to-jquery-ajax-fail-vs-error

반응형