我向服务器发送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