【发布时间】:2013-08-28 01:12:29
【问题描述】:
我有一个网页,其中 javascript 通过 .ajax() 函数使用 POST 请求调用 PHP 服务器。 PHP 服务器依次调用外部第三方 API 来提交文本分析作业。处理完文本分析作业后,我的 PHP 服务器会从 API 查询结果。但是,第三方 REST API 不提供任何查询作业状态的方法。因此,在我提交作业后,我让程序休眠大约一分钟,然后查询结果。但是,有时我的结果是不完整的。我尝试将睡眠时间设置得很大,但将其设置为超过一分钟似乎会使从 Javascript 到 PHP 的初始 POST 请求超时。将 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 是返回错误的那个。你的错误日志是怎么说的?
-
如果我将等待时间减少到 60 秒以下,一切正常。我尝试更改 php.ini 以使 max_execution_time 更长,但这也无济于事。
-
网络服务器错误日志在
ie.php的主机上显示了什么? -
如果你在浏览器中运行ie.php,会出现什么错误?
-
服务器日志没有错误..
标签: php javascript ajax jquery