ajax请求遇到服务器重启或中断

时间:2022-04-21 13:22:12

常会有不断轮询发送ajax请求,处理一些业务的场景。

要考虑到:

1. 服务器重启,中断,恢复后仍然能恢复正常业务处理。

服务器重启过程中,再次发送请求,请求状态将变为net::ERR_CONNECTION_REFUSED,ajax依然会执行到success逻辑层,拿到的响应是null。

想当然的认为ajax会执行到error逻辑层是不正确的,因此写代码的时候要格外注意这一点。

 var progress_polling_ajax = function () {
var time_interval = 3000; jQuery.ajax({
url: "/system/ajax_get_progress/",
method: "POST"
dataType: "json",
success: function (data) {
try {
if (data) {
//业务处理
} else {
setTimeout(progress_polling_ajax, time_interval);
} } catch (e) {
setTimeout(progress_polling_ajax, time_interval);
}
},
error: {
setTimeout(progress_polling_ajax, time_interval);
} }); };