我有一些AJAX代码,伟大的工程。点击按钮后,它每2秒调用一次doAjax
函数,直到它收到来自服务器的消息(成功为文本Initializing...please wait
)。设置超时与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秒后发生超时。我试图删除递归,但仍然有同样的问题。我究竟做错了什么?
一个非常合理的问题。除了某些原因,除非doAjax函数在click处理程序中,否则我无法获得任何工作。我尝试删除递归,但它不会改变任何东西。 – Tom
再次嗨。你的功能应该在点击通话之外工作。我已经做了一百万次,不应该成为一个问题。解决这个问题。现在,为了超时,试着看看回调是否是这样的,用这样的代码:error:function(){alert(“error”)}' – Greeso
增加了警报,它似乎没有得到错误功能 – Tom