【问题标题】:axios is giving response in 20 sec, but same api with same request payload is giving response in 6 sec from postmanaxios 在 20 秒内给出响应,但具有相同请求负载的相同 api 在 6 秒内从邮递员给出响应
【发布时间】:2019-09-10 08:56:45
【问题描述】:

我正在使用 axios 进行来自 reactjs 框架的 api 调用。 通过 axios,我在 20 秒内得到响应,但是当我从邮递员发出相同的请求时,它会在 6 秒内给出响应。

我使用 fetch 尝试了相同的请求,它也需要大约 20 秒

     axios.post(URL, reqObject, {
            headers: {
                'Access-Control-Allow-Origin': '*',
                'Authorization': 'Bearer '.concat(AccessToken)
            },
        }
        ).then(function (response) {

            console.log(" axios  APi call response ", response.data.value)

        }).catch(function (error) {
            console.log("  error error");
            console.log(error);
        });

【问题讨论】:

标签: javascript reactjs axios fetch-api


【解决方案1】:

听起来这是对响应缓慢的服务器的跨域请求。跨域 POST 需要在浏览器上进行称为“预检”的 OPTIONS 请求。如果服务器响应缓慢,可能需要很长时间才能响应 OPTIONS 请求,然后又需要很长时间才能响应 POST。

相比之下,由于postman不是浏览器,所以不用担心CORS,可以发送POST而不发送preflight OPTIONS,所以只会产生POST的费用。

(如果您想知道为什么邮递员不必进行预检,而浏览器却需要,我建议您阅读Same Origin PolicyCORS on MDN 以及question I linked in a comment 的答案。)

【讨论】:

  • 您好先生,请问有什么解决办法呢?我也有同样的问题......邮递员在 0.5 秒内响应,而我的 fetch 请求在 5 秒内响应
  • @Ashh - 解决方案是修复导致服务器响应如此缓慢的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多