如何设置ajax超时
How to set up ajax time out?
我有这个代码在40秒后ajax调用超时:
if (xmlhttp) {
xmlhttp.open("GET", MY_SERVLET, true); xmlhttp.onreadystatechange = showResults;
xmlhttp.send(null);
var httpTimeOut=setTimeout("ajaxTimeout();",40000);
}
function ajaxTimeout() {
xmlhttp.abort();
document.getElementById('errorShow').innerHTML = "Request Timed out";
}
然而,由于我所在的环境限制,我无法测试这一点。谁能告诉我这是正确的还是需要修改??
应该修复:
if (xmlhttp) {
xmlhttp.open("GET", MY_SERVLET, true);
xmlhttp.onreadystatechange = showResults;
xmlhttp.send(null);
setTimeout(function() { xmlhttp.abort() },40000);
由于ajaxTimeout
函数不能"看到"xmlhttp
变量,但是我们可以使用匿名函数访问局部变量
另一种方法是使用jQuery.ajax
,这样库就会照顾它。
你的代码看起来像这样:
$.ajax({
url: MY_SERVLET,
async: true,
timeout: 40000,
success: function(args) {
// on success code
}
})
相关文章:
- 如何设置$.ajax请求的超时,并在超时时间过长时进行重做
- 导致ajax调用超时错误的原因
- Ajax超时的原因
- DROPZONE - 在 fle 上传期间处理 AJAX 请求中的会话超时
- 奇怪的设置超时清除行为与jQuery AJAX
- 在 websocket 消息上生成 AJAX POST 会导致超时异常
- 在操作之间发送 Ajax 消息集超时 m 延迟
- Web 视图中的同步 Ajax 超时
- ajax超时增加不起作用
- 如何为JQuery$.ajax同步请求设置超时并执行某些操作
- 处理AJAX超时
- 如何在fluxiblefetcher应用程序中增加ajax请求超时长度
- 让ajax数据给jquery超时
- 全局配置所有$.ajax请求以支持超时重试
- 在AJAX成功中超时一个HTML标记
- 美元.Ajax超时的例子是错误和危险的
- AJAX超时在上传文件时中止请求
- 如何设置ajax超时
- ASP.. NET Ajax超时后重试回调
- Jquery ajax超时最佳实践值