Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理Loooong HTTP请求(当前使用axios)_Javascript_Node.js_Reactjs_Express_Axios - Fatal编程技术网

Javascript 处理Loooong HTTP请求(当前使用axios)

Javascript 处理Loooong HTTP请求(当前使用axios),javascript,node.js,reactjs,express,axios,Javascript,Node.js,Reactjs,Express,Axios,我有一个服务器,可以转换大文件并将结果上传到云存储。今天我终于达到了这个极限,转换花了一分钟,上传又花了2分钟,导致了一个很长的HTTP请求。客户端正在使用axios调用Express服务器 我在服务器端经历的是,大约2分钟后,请求再次被调用(没有用户输入)。然后,这两个请求在客户端失败(但在服务器上成功)。结果是对同一个文件进行了两次转换,并进行了两次无用的上载,因为客户端收到了错误通知 我相信我看到的是重试超时中止重试超时中止序列。我尝试将{timeout:5*60*1000}传递给axio

我有一个服务器,可以转换大文件并将结果上传到云存储。今天我终于达到了这个极限,转换花了一分钟,上传又花了2分钟,导致了一个很长的HTTP请求。客户端正在使用axios调用Express服务器

我在服务器端经历的是,大约2分钟后,请求再次被调用(没有用户输入)。然后,这两个请求在客户端失败(但在服务器上成功)。结果是对同一个文件进行了两次转换,并进行了两次无用的上载,因为客户端收到了错误通知

我相信我看到的是重试超时中止重试超时中止序列。我尝试将
{timeout:5*60*1000}
传递给axios以获得5分钟的超时时间,但没有成功


我们计划将流程更改为异步、带外、Web套接字等。但在此之前,我如何确保请求不会失败?是否需要处理浏览器级别的设置?或者使用不同于axios的库?

多亏了所有的评论,你们都做到了。中止是由特快专递发出的。添加
req.setTimeout(5*60*1000)
解决了这个问题。谢谢大家

更新:在
服务器
级别添加超时甚至更好:

//...express middleware + routs + etc...
const server = app.listen(PORT, function() {
  console.log(`listening on ${PORT}`);
});

//set timeout of requests to 5 minutes
server.timeout = 5 * 60 * 1000;

请检查,这可能是服务器的问题,而不是Axios。我不熟悉Axios,但一般来说,如果建立了HTTP连接,浏览器将无限期地等待。在过去,AJAX请求需要花费数小时才能最终成功。很可能,您的服务器或反向代理或其他东西正在超时。您可以发布数据包捕获吗?是否可以增加Express服务器中的超时时间
server.timeout=999999
(以毫秒为单位)我以前遇到过类似的问题。当我使用异步进程时,问题就解决了。您可以在异步进程完成之前从服务器返回成功状态。您可以发送文件,然后关闭请求,并在服务器执行操作并使用其进度更新会话时长时间轮询进度状态