我想知道这种情况是否有非 jquery 解决方案:
没有回复 ajax 请求,因为服务器的 Internet 连接中断,客户端的 Internet 连接中断,或者服务器崩溃。xmlhttprequest 对象中是否有一些内置的方法/事件可以帮助解决这个问题?
我想知道这种情况是否有非 jquery 解决方案:
没有回复 ajax 请求,因为服务器的 Internet 连接中断,客户端的 Internet 连接中断,或者服务器崩溃。xmlhttprequest 对象中是否有一些内置的方法/事件可以帮助解决这个问题?
您可以设置超时属性:
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);