我有一个网页,其中 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 Request Error: XMLHTTPRequestObject status: (0, error), text status: (error), error throw: ()