我有一个来自客户端的ajax调用,看起来像那样:
$.ajax({
'url': '/converter/ajax-make-corrections/',
'data': {
corrections: JSON.stringify(globalCorrrectionsObject)
},
type: 'POST',
success: function(data) {
}
})
此操作将相当大的文件发送到服务器以执行某些服务器作业。问题是服务器上有时间限制 - 30分钟。在该服务器关闭与504错误的连接后(这是我在nginx访问日志文件中看到的):
[06/May/2015:09:13:33 +0300] "POST /converter/ajax-make-corrections/ HTTP/1.1" 504
和nginx error.log文件中的同一时间
*1799741 upstream timed out (110: Connection timed out) while reading response header from upstream, client:
apache日志中没有错误。
以下是发生的事情:浏览器的操作在完全相隔30分钟后重启了9次。由于浏览器中的操作无法使用相同的数据第二次手动启动,我最好的猜测是$ .ajax操作在获得504响应后重新启动。可能吗? $ .ajax如何处理504响应?它会重新启动自己再次发送相同的数据吗?
答案 0 :(得分:1)
$ .ajax动作在获得504响应后重新启动。可能吗?它会重新启动自己再次发送相同的数据吗?
在这种特殊情况下,我会说没有。您提供的脚本中没有任何内容可以提出请求。
$ .ajax如何处理504响应?
error: function (request, status, error) {
alert(request.responseText);
}
还尝试增加max_execution_time
ini_set('max_execution_time', 3600); //1 hour