首页 > 解决方案 > Axios GET 请求随机超时

问题描述

我们正在开发一个 React 应用程序,它使用 Axios 进行 REST API 调用。我们随机看到请求超时。我们检查了网络连接,一切正常(100 MBPS 连接)。我们检查了我们的服务器日志,请求到达了服务器并且它得到了处理,没有任何错误。但客户从未得到回复。我正在添加我们用来在下面进行这些 api 调用的代码。如果您发现代码有任何问题,我们将非常感谢您提供解决方案。如果您认为代码看起来不错,那么请给我们一些解决/调试超时的提示。我还在下面添加错误。

import axios from 'axios';
import axiosRetry from 'axios-retry';
import { v4 } from 'uuid';

axios.defaults.timeout = 30000;
axios.interceptors.request.use((config) => {
  const updatedConfig = { ...config };
  updatedConfig.headers['X-CORRELATION-ID'] = v4();
  return updatedConfig;
});
axiosRetry(axios, {
  retries: 3,
  retryDelay: (retryCount) => retryCount * 1000,
});

axios({
    method: 'get',
    url: `${requestURL}`,
    headers: {
      authorization: `Bearer ${token}`,
    },
  })
    .then((response) => {
      console.log(response);
    })
    .catch((error) => {
      console.log(error);
    });
{
    "error": {
        "message": "timeout of 30000ms exceeded",
        "name": "Error",
        "stack": "Error: timeout of 30000ms exceeded\n at e.exports (https://file.js:2:2141051)\n at XMLHttpRequest.h.ontimeout (https://file.js:2:2140157)",
        "config": {
            "url": "requestURL",
            "method": "get",
            "headers": {
                "Accept": "application/json, text/plain, */*",
                "authorization": "Bearer TOKEN",
                "X-CORRELATION-ID": "UDID"
            },
            "transformRequest": [null],
            "transformResponse": [null],
            "timeout": 30000,
            "xsrfCookieName": "XSRF-TOKEN",
            "xsrfHeaderName": "X-XSRF-TOKEN",
            "maxContentLength": -1,
            "axios-retry": {
                "retryCount": 0,
                "lastRequestTime": 1597096169071
            }
        },
        "code": "ECONNABORTED"
    }
}

提前致谢

标签: reactjsrestaxiostimeoutaxios-retry

解决方案


推荐阅读