我向服務器發送ajax請求,我只需要知道何時完成將用戶重定向到第二頁。 它正在大多數時間工作,但是如果服務器花費很長時間回答(例如10分鐘),則可能發生沒有回調函數被調用並且請求持續等待。jQuery ajax調用永不結束(成功和錯誤回調未被觸發)
我的代碼如下:
$.ajax({
type: 'post',
url: 'request.php',
success: function(data) {
alert("Success: "+data);
window.location.replace("success.php");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("Ajax error: "+xhr.status+" - "+thrownError);
window.location.replace("error.php");
}
});
正如你所看到的,我試圖檢查是否有任何錯誤,但據我已到達,Ajax請求的行爲如同它沒有完成(不會發出警報或重定向)。但是,服務器中的PHP代碼在結束之前運行無錯誤。
我不知道在哪裏尋找錯誤,因爲我在考慮瀏覽器或服務器中的超時問題,但它似乎不是原因。而且,由於相同的代碼在短暫的等待時間內工作,我無法想象其他可能的原因。
謝謝!
網絡控制檯是否顯示任何有趣的內容?瀏覽器是否看到請求完成? – 2013-02-10 16:06:44
您需要在整個後端PHP腳本中添加錯誤日誌代碼。這可能是holdup的候選對象,因爲你不能從視覺上輸出任何東西,所以error_log是要走的路。那,和控制檯已經被建議。 – 2013-02-10 16:08:11
「相同的代碼在短時間內工作」,這意味着什麼? 10分鐘的頁面響應,真的嗎? – 2013-02-10 16:10:45