我有一個網頁,JavaScript通過.ajax()函數使用POST請求調用PHP服務器。 PHP服務器反過來調用外部第三方API來提交文本分析作業。一旦處理了文本分析作業,我的PHP服務器就會查詢API的結果。但是,第三方REST API不提供任何方式來查詢作業的狀態。所以在我提交工作之後,我把我的程序休眠了大約一分鐘,然後查詢結果。但是,有時我的結果不完整。我嘗試將睡眠時間設置得很大,但將其設置爲超過一分鐘似乎使得從Javascript到PHP的初始POST請求超時。將ajax超時參數設置爲高無助於解。有沒有人有如何解決這個問題的建議?任何幫助真的很感激。JQuery .ajax超時增加不起作用
Ajax請求如下:
function callServer(params, success) {
var url = "ie.php";
$.ajax({
type: 'POST',
url: url,
data: params,
timeout: 60000000, //time out parameter doesn't work
dataType: "json",
success: function(result, textStatus) {
console.log(JSON.stringify(result, null, ' '));
if (success) success(result);
},
error: function(xhr, textStatus, errorThrown) {
var text = 'Ajax Request Error: ' + 'XMLHTTPRequestObject status: ('+xhr.status + ', ' + xhr.statusText+'), ' +
'text status: ('+textStatus+'), error thrown: ('+errorThrown+')';
console.log('The AJAX request failed with the error: ' + text);
console.log(xhr.responseText);
console.log(xhr.getAllResponseHeaders());
}
});
}
錯誤看起來是這樣的:
Ajax請求失敗,出現錯誤:AJAX請求錯誤:XMLHTTPRequestObject狀態:(0,錯誤),文本狀態:(錯誤),拋出的錯誤:()
爲什麼你認爲這是由於你的超時不起作用?聽起來像ie.php是一個返回錯誤。你的錯誤日誌說什麼? – ChunkyBaconPlz
如果我將等待時間縮短到60秒以內,一切正常。我試圖改變php.ini,以便max_execution_time更長,但這也沒有幫助。 – radhika
Web服務器錯誤日誌在主機「ie.php」的框中表示什麼? – ChunkyBaconPlz