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

原文地址:https://www.cnblogs.com/bjhl/p/10860118.html

时间: 2024-10-15 13:18:24

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

vue2.0项目实战--使用axios发送请求

在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤大原话 最近团队讨论了一下,Ajax 本身跟 Vue 并没有什么需要特别整合的地方,使用 fetch polyfill 或是 axios.superagent 等等都可以起到同等的效果, vue-resource 提供的价值和其维护成本相比并不划算,所以决定在不久以后取消对 vue-resource 的官

Vuex + axios 发送请求

Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios 来完成 ajax 请求,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求 前言: Vuex 的安装将不再赘述,可以参考之前的博客 Vue 爬坑之路(四)-- 与 Vuex 的第一次接触 使用 cnpm 安装 axios cnpm install axios -S 安装其他插

使用axios发送请求

在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤大原话 最近团队讨论了一下,Ajax 本身跟 Vue 并没有什么需要特别整合的地方,使用 fetch polyfill 或是 axios.superagent 等等都可以起到同等的效果, vue-resource 提供的价值和其维护成本相比并不划算,所以决定在不久以后取消对 vue-resource 的官

vue2项目使用axios发送请求

前言:在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 目前主流的 Vue 项目,都选择 axios 来完成 ajax 请求,下面来具体介绍一下axios的使用. 项目中安装axios cnpm install axios -S 每个需要请求的组件中都需要引入axios,如果觉得麻烦,可以axios改写成Vue的原型属性,在使用的时候,就不需要每个组件都去引用. 将axios改写成V

vue 借用element-ui实现头像上传 axios发送请求

<!-- 上传组件 --> <!-- 总结一下: action 写图片上传请求的路径 去路径哈 show-file-list就是当你上传时,是否会显示出上传的是哪一个图片,一般为false handleAvatarSuccess它是成功的回调 beforeAvatarUpload:上传之前做的一些事情在本页面中你不点击按钮 图片也会显示出来 element-ui中的上传组件 在action时,写了上传地址,当你选择好图片,就自动帮你上传了 <template> <div

Vue中如何使用axios发送jsonp跨域验证

https://cnodejs.org/topic/5930430f03dba3510d8a62c6 在使用axios发送请求时,服务器端设置 res.header("Access-Control-Allow-Origin", "*");可以正确得到结果 当服务器端不设置允许跨域时,使用jsonp方式发送就不行了,提示错误如下 XMLHttpRequest cannot load http://localhost:3000/axios?cb=cb. No 'Acce

axios发送两次请求原因及解决方法

axios发送两次请求原因及解决方法 最近Vue项目中使用axios组件,在页面交互中发现axios会发送两次请求,一种请求方式为OPTIONS,另外一种为自己设置的. 如图: 什么是CORS通信? CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制. CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,IE浏

vue中采用axios发送post请求

这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在运用npm install axios的时候就会默认安装qs,因此我们就得将qs引入到axios中,然后需要再通过实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 1 let qs = require

vue中axios发送post请求,后端(@RequestParam)接不到参数

遇到的问题描述 :axios post 请求,后端接收不到参数. 我们的接口是java,用@RequestParam来接收前端的参数 解决方案:使用qs:axios中已经包含有qs,所以无需重新安装,直接引入就好 import Qs from 'qs'//引入qs let chedata = { data: encStr, sign: md5.hexMD5(che), timestamp: timestamp, } //chedata是我需要传递给后端的参数 console.log(Qs.str