使用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),但数据库中的数据已经完全正常:

猜你喜欢

转载自www.cnblogs.com/bjhl/p/10860118.html