我想知道这种情况是否存在非Jquery解决方案:
没有回复ajax请求,因为服务器的互联网连接断开,客户端的互联网连接断开,或服务器崩溃。 xmlhttprequest对象中是否有一些内置的方法/事件可以帮助解决这个问题?
答案 0 :(得分:1)
您可以设置超时属性:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
done(request.responseText);
}
},
done = function (response) { console.log(response) },
fail = function () {};
xhr.open("GET", "url", true);
xhr.timeout = 4000;
xhr.ontimeout = function () { xhr.abort(); fail(); }
xhr.send();
或者只使用window.setTimeout
var xhr = new XMLHttpRequest(),
timeout;
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
done(request.responseText);
clearTimeout(timeout);
}
};
xhr.open("GET", "url", true);
xhr.timeout = 4000;
xhr.ontimeout = function () { xhr.abort(); fail(); }
xhr.send();
timeout = window.setTimeout(function () { xhr.abort() }, 4000);