うまく機能するajaxコードがいくつかあります。ボタンをクリックするとdoAjax
、サーバーからメッセージを受信するまで2秒ごとに関数が呼び出されます(成功はテキストですInitializing...please wait
)。
追加したいのは、サーバーがダウンした場合などのタイムアウトです。そこで、タイムアウトとエラー関数を追加しました。
$(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秒後にタイムアウトが発生することはありません。再帰を削除しようとしましたが、それでも同じ問題が発生します。私は何が間違っているのですか?