2012-10-04 173 views
4

我有一个事件,当点击发起一个jQuery加载()。负载传递几MB的POST数据。我得到失败的错误。我怎样才能设置超时?设置超时jQuery.load()

toggleModalLoading(); 
$("#ele").load('http://site.com/script.php',{ 
       'data' : postData }, 
       function(e) { 
         toggleModalLoading(); 
       }); 

回答

3

​​调用真的只是一个方便的简写。在拨打​​之前您可以拨打set global ajax options。如果这不可行,您将不得不使用the lower-level API。无论哪种方式,你想要的timeout AJAX选项:

$.ajax('http://site.com/script.php', { 
    data: postData, 
    timeout: 1000, // 1000 ms 
    success: function (data) { 
     $('#ele').html(data); 
     toggleModalLoading(); 
    } 
}); 
+0

这不起作用。服务器可以中止吗? – user974896

+0

当然。一切皆有可能。连接一个'error'处理程序,看看发生了什么。 –

+0

刚做过。 console.log(“Text is:”+ text +“Err is”+ err);在我的错误:函数(jqXHR,文本,错误){}函数。我得到“Text is error”,没有状态码。 – user974896

1

设置超时为Ajax调用。

$.ajaxSetup({ 
    timeout: 30000 
}); 

如果服务器导致它停止,请查看php ini文件中的设置。

+0

这是行不通的。服务器可以中止吗? – user974896

+0

是的,你看看返回的错误吗?你有没有改变ini文件来处理大文件? – epascarello

+0

我将最大发布大小,最大上传大小和执行时间设置为远高于限制。仍然是一个问题。它不是多部分/表单数据方面的文件。这是一个base64编码的字符串,为10MB。 – user974896