ajax,axios请求,webpack proxy,前端设置的5分钟超时,为什么浏览器2分钟就显示超时?

我的问题已解决,是webpack的proxy默认设置的超时时间,修改默认超时时间就行了;

下方重点:

timeout: 1920000,

详细配置:

proxyTable: {
   
        timeout: 1920000,
      }
    },

找了半天从stackoverflow上找到了这个类似的问题,
https://stackoverflow.com/que...

感觉可能是这个原因,然后我在本机新建了一个没有使用proxy的项目,发现就没有2分钟的限制,所以很有可能是webpack代理设置了超时时间,我从webpack官网看了一圈没有发现相应的api
https://webpack.js.org/config...

我在前端设置了超时时间5分钟,

后端springboot没有设置超时时间;

可是发出请求后,两分钟浏览器就会提示超时;

这两分钟是哪里设置的呢?浏览器默认配置还是后端哪里的默认配置啊

阅读 10.3k
6 个回答

不同意楼上,2分钟超时并不是浏览器决定的。http1.1只规定了浏览器在socket断掉之后retry
2分钟是一个默认值的约定,比如nodejshttp_server_timeout如果你不设置会默认2分钟

所以你应该继续检查服务器端的超时。如果服务器端情况复杂,需要一段一段的排查超时的地方。

XMLHttpRequest/timeout

那"两分钟"是浏览器决定的, 对大部分浏览器来说, 超时时间不可更改.

相比更改超时时间, 不如找一下为什么超时.

最近也遇到这个问题,找到了答案,来回答一波。其实浏览器都有默认时间,只是设置的不一样,而我们最长用的chrome超时时间是5分钟, 而两分钟是node默认的http请求时设置的timeout的时间,看这里

建议你参考楼上的方法,分2步走,先上传,后处理,处理期间爱干嘛干嘛 不影响,甚至可以一次性导入多个50M的文件,让服务器慢慢处理去。

1.看一下nginx的配置,有没有限制超时时间
2.大文件上传采取分片上传把,校验合法性分片也可以,你这个也不安全,50M上传的接口,被别人抓到,那不是拖垮你服务器

我之前遇到一个类似的,也在segmentfault问过,转一下一个我认为比较合理的答案给你参考下:(以下回答摘抄自https://segmentfault.com/q/10...

1.超时时间肯定有,并且存在多级设定
比如7层的HTTP超时,在 Nginx、Apache 之类的设置
也存在 4 层的 TCP 超时
中间网络节点,也存在超时的可能
2.不建议设置超长的请求
3.根据耗时的原因,来更换策略
如果是运算类型的接口导致的速度慢,是不是可考虑缓存接口数据,提前预生成接口数据
如果是下载类型,需要实时生成下载文件的,可以改成多次请求,

第一种请求先申请下载任务
第二种请求开始轮训下载任务是否准备好
第三种请求才直接下载文件
补充内容
超大型文件的上传,前端也是可以处理的,利用 FileAPI 对文件进行分割上传

https://www.html5rocks.com/zh...

PS:上传文件和数据对比,其实也可以拆分成两个接口。

上传的接口只管上传,怎么快,怎么体验好,怎么来。
获取对比后的数据,这是一种运算类型的接口,也可以单独出来。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏