我使用ajax发出GET请求,并期望返回一个JSON值。
但是,我的主机安装了防火墙。它每秒只需要2个请求,否则会阻止连接并显示错误页面。 (空白页面。)因此,如果我在一秒内发出3个请求,则第三个请求永远不会检索JSON响应。因此,loading.gif一直在转动和转动。
如何在jQuery中超时,比方说5秒,所以它会回调超时功能?
答案 0 :(得分:1)
试试这个:
$.ajax({
url: YourUrl,
async: true,
timeout: 5000, //5 seconds
success: function(args) {
// on success code
}
})
答案 1 :(得分:0)
您可以使用超时功能创建自定义GET请求作为参数:
$.getWithTimeOut = function(url, params, datatype, onsuccessfunction, aftertimeoutfunction, timeout){
$.get(url, params, function(data) {
onsuccessfunction(data);
setTimeout(aftertimeoutfunction, timeout);
}, datatype);
};
然后你打电话:
$.getWithTimeOut('url/url', { param1: value1 }, 'json', function(data){
//success code here
}, function(/*params*/){
//timeout code here
}, 5000);