axios在20秒内给出响应,但具有相同请求有效载荷的相同api在6秒内从邮递员那里得到响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axios在20秒内给出响应,但具有相同请求有效载荷的相同api在6秒内从邮递员那里得到响应相关的知识,希望对你有一定的参考价值。

我正在使用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);
        );

答案

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

相比之下,由于postman不是浏览器,它不必担心CORS并且可以在不发送预检OPTIONS的情况下发送POST,因此只会产生POST的成本。

(如果你想知道为什么邮递员不必做预检但浏览器没有,我建议阅读Same Origin PolicyCORS on MDNquestion I linked in a comment的答案。)

以上是关于axios在20秒内给出响应,但具有相同请求有效载荷的相同api在6秒内从邮递员那里得到响应的主要内容,如果未能解决你的问题,请参考以下文章

GET 请求在邮递员中有效,但在 Axios 中失败

axios发布请求不返回响应错误

在另一个 axios 请求中使用 axios 响应数据

axios.post 显示错误“请求失败,状态码为 400”,但邮递员发布了相同的数据

axios post 请求挂在有效请求上

反应 axios 补丁请求给出 401 错误但提供了授权