【发布时间】:2013-01-25 19:34:55
【问题描述】:
我有一个对服务器的 ajax 请求,我只需要知道它何时完成将用户重定向到第二个页面。 它大部分时间都在工作,但如果服务器响应时间过长(例如 10 分钟),则可能会发生没有调用回调函数并且请求一直等待的情况。
我的代码如下:
$.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 代码运行到最后都没有错误。
我不知道在哪里搜索错误,因为我在考虑浏览器或服务器中的超时问题,但这似乎不是原因。由于相同的代码在很短的等待时间内运行,我无法想象其他可能的原因。
谢谢!
【问题讨论】:
-
网络控制台显示什么有趣的东西吗?浏览器是否看到请求完成了?
-
您需要在整个后端 PHP 脚本中添加错误记录代码。这可能是阻塞的候选者,并且由于您无法从中直观地输出任何内容,因此 error_log 是要走的路。那,以及已经建议的控制台。
-
“相同的代码在很短的等待时间内工作”,这意味着什么?页面响应需要 10 分钟,真的吗?
-
您可以设置 $.ajax 的
timeout选项,但请务必阅读超时文本 here -
如果您有 chrome,请检查开发者控制台中的
network选项卡。你可以看看那里是否有服务器端错误...
标签: php javascript jquery ajax timeout