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': '*'
" 在 client 对 server 的请求中毫无意义。请参阅:***.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”,但邮递员发布了相同的数据
前后端分离学习笔记 ---[跨域问题,JWT,路由守卫,Axios设置请求拦截和响应拦截]