3
嘿,大家都希望你能幫助我。如何檢測ajax請求上的php服務器超時
我想知道,假設您對運行PHP代碼的頁面執行了ajax請求。該頁面輸出一些數據(使用flush()方法或其他方式),但由於30秒超時或其他錯誤,PHP請求結束。
現在,當請求結束時,我想在客戶端找出它並重新啓動請求。
即假設我有這樣的事情我曾經是設置一個計時器在JS
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==3 && xmlhttp.status==200){
document.getElementById("A").innerHTML=xmlhttp.responseText;
}
else if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("A").innerHTML=xmlhttp.responseText;
//plus some additional code to end the process
}
else if(xmlhttp.status== SOMETHING /*WHAT DO I ADD HERE TO KNOW THAT THE SERVER HAS TIMED OUT OR SOMETHING SO I CAN RESTART THE XMLHTTP CYCLE */){
//code to resend xmlhttp request.
}
}
在你的問題你要求檢查在服務器端,但在你的代碼中你有JavaScript的空間在這個。由於您的ajax是異步的,因此可能會被觸發,然後用戶可能會離開頁面。該腳本將無法再次執行或通知服務器經歷了超時。你必須強迫用戶留在你的頁面上,直到回覆。您可能必須通過在服務器上而不是js上跟蹤此問題來解決此問題。 –
我的不好,那是一個錯字。糾正。另外,我希望支票在客戶端。如果用戶離開頁面,dosnet真的很重要。 –