2011-05-03 142 views
1

我需要一個PHP腳本,將處理數據並顯示結果的一些Ajax調用。jQuery的AJAX調用中止

但電話似乎超時。在Chrome和Firefox中,當我檢查它們顯示爲紅色的呼叫時。

我的Ajax代碼:

$.ajax({ 
    type: "POST", 
    url: "/toimport", 
    data: ({"filename": $("#file").val(), "search_engine": $("#engine").val(), "matchtype": $("#matchtype").val(), "year" : $("#year").val(), "country" : country, "sheet" : i, "filetype": file_type}), 
    success: function(data, textStatus, jqXHR){ 
     $("#message").append(data); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown){ 
     $("#message").append(textStatus + '<br />'); 
    } 
}); 

當我提出的PHP代碼瑣碎(返回接收到的值中的一個),所有的調用是成功的,它是PHP需要一些時間Ajax調用,只有當失敗。

我嘗試使用的Ajax調用超時,但它似乎並沒有工作。返回的textStatus是'錯誤',errorThrown是空的。

感謝

+0

檢查響應頭看服務器返回什麼(即螢火蟲)作爲錯誤代碼。也許你的完整的php腳本會引發500個內部服務器錯誤。大多數時候,服務器的響應確實存在錯誤。 – DanielB 2011-05-03 16:17:06

+0

對於那些失敗的調用,我沒有得到響應頭。 – Jon 2011-05-03 16:29:39

回答

1

您可以處理你的AJAX調用這個方法:

var ajaxCall = $.ajax(options); 

你可以放棄你的電話,如果你有關於你的AJAX調用:

ajaxCall.abort(); 

您需要請額外驗證以確定您的AJAX呼叫是否已完成或仍在工作,以避免您的abort請求發生任何錯誤。

+0

我如何進行驗證? – Jon 2011-05-04 07:16:28

+1

每個ajax調用都具有像'readyState'這樣的屬性,這可以是'1','4'等等。因此,您需要知道何時中止ajax調用,因爲這可能會拋出異常並未完成。 – Edgar 2011-05-04 17:02:54