gpt4 book ai didi

php - 如何检测ajax请求的php服务器超时?

转载 作者:搜寻专家 更新时间:2023-10-31 22:09:43 24 4
gpt4 key购买 nike

我想知道,假设您向运行 PHP 代码的页面发出了 ajax 请求。该页面输出一些数据(使用 flush() 方法或其他方式)但由于 30 秒超时或其他一些错误,php 请求结束。

现在当请求结束时,我想在客户端了解它并重新启动请求。

假设我有这样的东西

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.
}

}

最佳答案

我使用的一种策略是在JS中设置一个定时器,如果调用成功则清除它。

var myTimer = setTimeout(stuffToDoOnFailure, 6000); // 6 secs

ajaxCall(function callBack() {
clearTimeout(myTimer);
});

编辑:

当然,如果 ajax 调用在 6 秒后成功,您可能会同时执行 stuffToDoOnFailurecallBack,因此您想以某种方式处理这种情况。不过,这取决于您的应用。

关于php - 如何检测ajax请求的php服务器超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14110718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com