我正在构建一个带有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
请求?
答案 0 :(得分:0)
找到答案here:
app.post('/long_processing_thing', function(req, res){
req.setTimeout(0) // no timeout
do_something_long(req, res)
})
您可以使用req.setTimeout
轻松更改请求的超时。