jQuery: 실패한 AJAX 요청에 대한 폴백 처리
jQuery는 실패한AJAX 콜에 폴백을 제공할 수 있습니까?제 시도는 이렇습니다.
function update() {
var requestOK = false;
$.getJSON(url, function(){
alert('request successful');
requestOK = true;
});
if (!requestOK) {
alert('request failed');
}
}
유감스럽게도 $.getJSON() 메서드의 콜백 함수가 호출되어도 콜백 함수가 요청을 설정할 기회가 생기기 전에 'request failed'라는 메시지가 나타납니다.OK 변수코드가 병렬로 실행되기 때문인 것 같아요.그런 상황에 대처할 방법이 있나요?콜백 기능을 포함한 체인 또는 AJAX 요청을 기다리는 방법을 생각해 보았습니다.하지만 어떻게요?그거 할 줄 아는 사람 있어?
하위 수준 $.ajax 호출 또는 ajaxError 함수를 사용해야 합니다.다음은 $.ajax 메서드입니다.
function update() {
$.ajax({
type: 'GET',
dataType: 'json',
url: url,
timeout: 5000,
success: function(data, textStatus ){
alert('request successful');
},
fail: function(xhr, textStatus, errorThrown){
alert('request failed');
}
});
}
편집 추가했습니다.timeout
에게$.ajax
5초로 설정합니다.
Dougs의 답은 맞지만 실제로는$.getJSON
캐치 에러(사용할 필요가 없음)$.ajax
체인으로 고정합니다.getJSON
에의 호출과 함께 전화하다fail
기능:
$.getJSON('/foo/bar.json')
.done(function() { alert('request successful'); })
.fail(function() { alert('request failed'); });
라이브 데모: http://jsfiddle.net/NLDYf/5/
이 동작은 jQuery의 일부입니다.지연 인터페이스
기본적으로는 액션을 호출한 후 이벤트를 비동기 액션에 부가할 수 있습니다.즉, 액션에 이벤트 함수를 전달할 필요가 없습니다.
jQuery에 대한 자세한 내용은 이쪽.보류처: http://api.jquery.com/category/deferred-object/
네, jQuery에 포함되어 있습니다.jquery 매뉴얼에 있는 문서를 참조하십시오.
Ajax Error가 필요할 수 있습니다.
저는 이 방법을 선호합니다.그것은 약속을 되돌려 사용할 수 있기 때문입니다.(성공)Function, fail Function).필요한 곳이면 어디든지 사용할 수 있습니다.
var promise = $.ajax({
type: 'GET',
dataType: 'json',
url: url,
timeout: 5000
}).then(function( data, textStatus, jqXHR ) {
alert('request successful');
}, function( jqXHR, textStatus, errorThrown ) {
alert('request failed');
});
//also access the success and fail using variable
promise.then(successFunction, failFunction);
찾으시는 것은 jquery ajax 객체에 대한 오류 옵션이라고 생각합니다.
getJSON은 에 대한 래퍼입니다.$.ajax
object는 에러 옵션에 액세스 할 수 없습니다.
편집: dcneiner는 사용자가 사용해야 할 코드의 좋은 예를 제시했습니다.(회신을 올리기 전부터)
언급URL : https://stackoverflow.com/questions/1844370/jquery-handle-fallback-for-failed-ajax-request
'programing' 카테고리의 다른 글
Wordpress - 하위 메뉴 항목 페이지를 선택/로드할 때 상위 메뉴 항목을 강조 표시합니다. (0) | 2023.03.04 |
---|---|
SQLite는 워드프레스 데이터베이스로 사용할 수 있을 정도로 강력합니까? (0) | 2023.03.04 |
응답 처리 - SyntaxError:모드 사용 시 예기치 않은 입력 종료: 'no-cors' (0) | 2023.03.04 |
set php 라디오 버튼은 기본적으로 선택되어 있습니다. (0) | 2023.03.04 |
다른 인수를 사용하여 동일한 URL 패턴에 대해 두 가지 메서드를 만듭니다. (0) | 2023.03.04 |