我用ajax做了一个GET请求,期望返回一个JSON值。jQuery ajax超时函数?
然而,我的主机安装了防火墙。它每秒只需要2次请求,否则会阻止连接并显示错误页面。 (空白页)。所以如果我在一秒内发出3个请求,第三个请求永远不会检索JSON响应。因此,loading.gif不断转动。
我怎么可以让jQuery的超时,比方说5秒,所以它会回调超时功能?
我用ajax做了一个GET请求,期望返回一个JSON值。jQuery ajax超时函数?
然而,我的主机安装了防火墙。它每秒只需要2次请求,否则会阻止连接并显示错误页面。 (空白页)。所以如果我在一秒内发出3个请求,第三个请求永远不会检索JSON响应。因此,loading.gif不断转动。
我怎么可以让jQuery的超时,比方说5秒,所以它会回调超时功能?
试试这个:
$.ajax({
url: YourUrl,
async: true,
timeout: 5000, //5 seconds
success: function(args) {
// on success code
}
})
超时后会起什么作用?绝对不会成功:。 – 2013-02-26 02:32:20
您可以创建具有超时功能自定义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);
'$阿贾克斯'接受'timeout'选项。然后,您可以在错误处理程序中测试错误原因(例如超时)。请查看文档:http://api.jquery.com/jQuery.ajax/。 – 2013-02-26 02:24:23