나는 위대한 작품을 몇 가지 아약스 코드가 있습니다. 버튼을 클릭하면 서버에서 메시지를받을 때까지 이라는 문자가 성공할 때까지 2 초마다 doAjax
함수가 호출됩니다.jquery .ajax로 시간 초과 설정
내가 추가하고 싶은 것은 서버가 다운 된 경우를 대비 한 타임 아웃입니다. 그래서 타임 아웃과 에러 기능을 추가했습니다 :
$(document).on("click", ".play", function() {
function doAjax(){
$.ajax({
url: 'index.php',
success: function(data) {
if (data == 'Initializing...please wait')
{
$('#quote p').html(data).css({'border': '1px solid', 'margin': '10px 0px'});
setTimeout(doAjax, 2000);
}
},
error: function(jqXHR, strError) {
if(strError == 'timeout')
{
$('#quote p').html("Oops! Not found...").css({'border': '1px solid'});
}
},
timeout: 8000
});
}
doAjax();
});
코드는 여전히 작동하지만 8 초 후에는 타임 아웃이 발생하지 않습니다. 재귀를 제거하려고했지만 여전히 같은 문제가 있습니다. 내가 도대체 뭘 잘못하고있는 겁니까? ajaxSetup 방법이 설정
매우 합리적인 질문입니다. doAjax 함수가 클릭 핸들러에 있지 않으면 어떤 이유로 든 작동 할 수 없습니다. 재귀 제거를 시도했지만 아무 것도 변경하지 않습니다. – Tom
안녕하세요. 귀하의 기능은 클릭 한 통화 외에서 작동해야합니다. 나는 그것을 백만 번 해봤고 문제가되어서는 안된다. 이 문제도 수정하십시오. 이제 타임 아웃을 위해 다음과 같은 코드를 사용하여 콜백이 수행되는지 확인하십시오. error : function() {alert ("error")} – Greeso
경고를 추가했으나 오류가 발생하지 않는 것 같습니다. function – Tom