使用axios发送请求,遇到会发两次的情况

Posted bjhl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用axios发送请求,遇到会发两次的情况相关的知识,希望对你有一定的参考价值。

在学习php&mysql的过程中,前端nuxt用(vue官方推荐的)axios发送post请求,以实现向数据库插入页面提交数据的功能。

发现功能是实现了,但数据库中表的数据是这样的

技术图片

很莫名其妙的多出空行,由于是初学者,费了好长时间找是不是自己php连接数据库的代码出了什么问题,但并没有发现疏漏。

于是找回前端,确定axios请求只触发了一次后,看了下浏览器控制台network,发现每次点击提交都会出现2次请求,对比一下发现第一次请求是这样的

技术图片

下边的login.php才是正常的post请求。那么本着不懂就要问的不要脸精神,去网上找答案:

https://blog.csdn.net/Homer_Simpson/article/details/89188068

写得很明白,复杂请求,就会自动进行一次预请求,和我们没关系。那么尝试解决这个问题:php中做一下判断

1 if (!$_SERVER[‘REQUEST_METHOD‘]=== ‘POST‘) {
2     die(‘不是post请求忽略‘);
3 }

自己是个菜鸟,看php连接数据库的写法是这样的:

技术图片

就给die()方法也拿过来试一哈,结果不出意料的失败了。于是接着找:

https://blog.csdn.net/qq_30378229/article/details/78576625

写得原因是一样的,但这个给出了解决的代码:

1 if(strtoupper($_SERVER[‘REQUEST_METHOD‘])== ‘OPTIONS‘){
2     echo ‘options请求,已忽略。‘;
3     exit; 
4 }

亲测有效,真是感谢两位素未谋面的朋友。虽然自己加上去的输出语句并没有打印出来(笑cry),但数据库中的数据已经完全正常:

技术图片

 

以上是关于使用axios发送请求,遇到会发两次的情况的主要内容,如果未能解决你的问题,请参考以下文章

python(flask)+apscheduler定时邮件重发两次的问题

前端发送两次请求处理

upload组件,上传时为啥有两次请求

如何在不允许请求页面两次的情况下支持 IDM

angular ajax请求 结果显示显示两次的问题

Axios 执行post发送两次请求的小坑