我有一些非常好的ajax代码。按下按钮后,它每隔2秒调用doAjax
函数,直到它收到来自服务器的消息(成功为文本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秒后看到超时。我尝试删除递归但仍然有同样的问题。我做错了什么?
答案 0 :(得分:0)
尝试在ajaxSetup方法中设置:
$.ajaxSetup({
timeout: 10000,
})
答案 1 :(得分:0)
只是猜测,首先尝试从ajax调用中删除递归,然后查看超时是否按预期工作。
另外,为什么在函数调用中有函数定义?您应该在外部定义您的功能,点击通话,然后从内部调用它。