如何在jquery中的ajax请求中处理504响应头?

时间:2015-05-06 08:05:50

标签: javascript php jquery ajax nginx

我有一个来自客户端的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响应?它会重新启动自己再次发送相同的数据吗?

1 个答案:

答案 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