2012-10-04 170 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