在10秒超时后,Chrome会重新启动AJAX POST请求

时间:2018-01-10 02:00:31

标签: javascript node.js ajax google-chrome express

我正在构建一个带有Nodejs和Express后端的React javascript应用程序。

版本: 反应:^ 16.0.0 节点:v8.0.0 快递:^ 4.14.0 Chrome:版本63.0.3239.84(官方版本)(64位)

POST请求是文件上传,文件附加到FormData()对象。在将映像成功上载到AWS S3之前,服务器不会响应。对于需要上传大约10000毫秒的大型图片,Chrome会重新启动POST请求。这会导致图像上传两次。

我在发送回复之前设置了setTimeout 10000毫秒进行了测试,并使用非常小的图片进行了测试。没有超时,图像上传就好了。但是超时会上传两次。

这种行为在Firefox中不会发生。

此主题似乎报告了我遇到的同一问题:link

据说服务器正在发回408请求,但我无法确认。如何阻止Chrome重新启动大型上传的POST请求?

1 个答案:

答案 0 :(得分:0)

找到答案here

app.post('/long_processing_thing', function(req, res){
  req.setTimeout(0) // no timeout
  do_something_long(req, res)
})

您可以使用req.setTimeout轻松更改请求的超时。