使用 Axios 的 GET 请求随机超时

Posted

技术标签:

【中文标题】使用 Axios 的 GET 请求随机超时【英文标题】:Random timeout on GET request with Axios 【发布时间】:2021-11-27 13:13:13 【问题描述】:

我有多个使用静态站点生成器(gridsome,基于 vue)构建的站点。在构建时,它们通过 Axios 使用 WP REST API 数据。

最近,我的构建会失败很多,因为 Axios 请求会随机超时

WP 端,axios 发出的每个请求都返回一个200 响应,响应的主体结构良好。没什么奇怪的。 但是 Axios 不会随机收到任何东西...

我不知道在哪里搜索,因为请求返回 200,响应(为 200)和 Axios 之间会出现什么问题?

其他线索:

使用邮递员或浏览器时,我从来没有遇到过这些超时 WP REST API 中超时的端点是随机的 我使用 REST API LOG 来监控 WP 端的请求状态 无论在 axios 上配置什么超时,它都永远得不到响应

任何帮助将不胜感激!

感谢您的宝贵时间

【问题讨论】:

您没有指定实际错误,因此可以在图像上看到它,请考虑将所有无法从图像中受益的信息作为文本发布。不明显这是超时。这是因为它会快速重试,确保您没有将它们混合在一起的版本github.com/axios/axios/issues/1543。否则,这与 Axios 无关,而是与您的设置有关,即服务器在哪里以及涉及的其他内容(nginx 等)。我最后一次在 s-s-r 构建中看到这个是因为服务器由于 RAM 问题而崩溃并快速重新加载。 【参考方案1】:

这确实是 Axios 的一个问题。 Axios 在他的 0.19 版本中返回了超时,这可能是涉及其他错误。 我将它更新到 v0.22,这向我显示了另一个错误:某些 JSON 响应被截断并且无法解析。 github上的相关问题:

https://github.com/axios/axios/issues/2590 https://github.com/axios/axios/issues/1545

我不得不从 axios 切换到 node-fetch。

【讨论】:

以上是关于使用 Axios 的 GET 请求随机超时的主要内容,如果未能解决你的问题,请参考以下文章

使用axios发起get请求和post请求

vue 对axios get pust put delete 封装

请求超时VUE axios重新再次请求

axios笔记

Vue项目请求超时处理

Vue使用axios发送get请求并携带参数