axios 在 20 秒内给出响应,但具有相同请求负载的相同 api 在 6 秒内从邮递员给出响应

Posted

技术标签:

【中文标题】axios 在 20 秒内给出响应,但具有相同请求负载的相同 api 在 6 秒内从邮递员给出响应【英文标题】:axios is giving response in 20 sec, but same api with same request payload is giving response in 6 sec from postman 【发布时间】: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);
        );

【问题讨论】:

"'Access-Control-Allow-Origin': '*'"clientserver 的请求中毫无意义。请参阅:***.com/questions/37527962/…最好将被忽略。 【参考方案1】:

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

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

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

【讨论】:

您好先生,请问有什么解决办法呢?我也有同样的问题......邮递员在 0.5 秒内响应,而我的 fetch 请求在 5 秒内响应 @Ashh - 解决方案是修复导致服务器响应如此缓慢的问题。

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

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

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

前后端分离学习笔记 ---[跨域问题,JWT,路由守卫,Axios设置请求拦截和响应拦截]

前后端分离学习笔记 ---[跨域问题,JWT,路由守卫,Axios设置请求拦截和响应拦截]

查询参数(axios 请求)中具有相同键的多个字段?

避免在每个请求中使用 Axios 在 Vue 中响应错误时进行处理