Automatically try AJAX request again on Fail
我已经看到,如果ajax请求失败,你可以指定一般做什么,是否可以让它在某种循环中再次尝试,以便它在停止之前尝试至少x次? 我之前使用过这段代码:
1 2 3 4 | $.ajaxSetup({ "error":function() { alert("error"); }}); |
哪个适用于所有AJAX请求(如果我错了,请纠正我)。
我想做这样的事情:
1 2 3 4 | $.ajaxSetup({ "error":function() { $(this).ajax; }}); |
这会有用吗? 甚至更好:这是正确的方法吗? 我会在计数系统中包装重试,以便它不会无限重试。 在我的应用程序中,9次中有10次可以正常工作但是偶尔会有一个我正在连接的API会返回错误。
任何建议都会有所帮助,谢谢!
你可以尝试这样的事情:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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(); } }); } |
虽然我可能会建议反对它。 如果请求失败,您可能想知道它失败的原因。 如果用户丢失了互联网连接怎么办? 任何进一步的尝试都可能再次失败,为什么要重试呢?