失败后自动重试AJAX请求

我已经看到您可以指定如果ajax请求失败通常要做什么,是否可以让它在某种循环中重试,以便它在停止之前尝试至少x次?我以前使用过此代码:

$.ajaxSetup({

"error":function() {

alert("error");

}});

这将适用于所有AJAX请求(如果我输入错了,请纠正我)。

我想做这样的事情:

$.ajaxSetup({

"error":function() {

$(this).ajax;

}});

这行得通吗?甚至更好:这是正确的方法吗?我会将重试包装在计数系统中,以便不会无限重试。在我的应用程序中,十分之九会正常工作,但是我经常与之交互的API之一有时会返回错误。

任何建议都会有所帮助,谢谢!

回答:

您可以尝试如下操作:

    var attempts;

function doAjaxRequest() {

attempts = 0;

doAjaxRequestLoop();

}

function doAjaxRequestLoop() {

attempts += 1;

if (attempts > 10) {

alert('too many attempts.');

return;

}

$.ajax({ // do your request

error: function (error) {

doAjaxRequestLoop();

}

});

}

</script>

尽管我可能建议反对。如果请求失败,则可能要找出失败的原因。如果用户失去了互联网连接怎么办?任何进一步的尝试都可能再次失败,为什么要重试?

以上是 失败后自动重试AJAX请求 的全部内容, 来源链接: utcz.com/qa/428688.html

回到顶部