$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
success
函数有时运行良好,有时效果不佳。
如何设置此ajax请求的超时时间?例如,3秒,如果超时,则显示错误。
问题是,ajax请求会冻结该块,直到完成。如果服务器停机一段时间,它将永远不会结束。
发布于 2011-03-08 05:43:39
请阅读$.ajax
documentation,这是一个涵盖的主题。
$.ajax({
url: "test.html",
error: function(){
// will fire when timeout is reached
},
success: function(){
//do something
},
timeout: 3000 // sets timeout to 3 seconds
});
您可以通过访问error: function(jqXHR, textStatus, errorThrown)
选项的textStatus参数来查看抛出了什么类型的错误。选项包括"timeout“、"error”、"abort“和"parsererror”。
发布于 2011-03-08 05:42:50
您可以在ajax选项中使用timeout
设置,如下所示:
$.ajax({
url: "test.html",
timeout: 3000,
error: function(){
//do something
},
success: function(){
//do something
}
});
在这里阅读关于ajax选项的所有内容:http://api.jquery.com/jQuery.ajax/
请记住,当发生超时时,触发的是error
处理程序,而不是success
处理程序:)
发布于 2012-10-18 15:31:08
使用功能齐全的.ajax
jQuery函数。请与https://stackoverflow.com/a/3543713/1689451进行比较以获取示例。
在没有测试的情况下,只需将您的代码与引用的SO问题合并:
target = $(this).attr('data-target');
$.ajax({
url: $(this).attr('href'),
type: "GET",
timeout: 2000,
success: function(response) { $(target).modal({
show: true
}); },
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
} else {
alert(t);
}
}
});
https://stackoverflow.com/questions/5225597
复制相似问题