Vue axios 请求数据时 php 无法接收到数据,解决

网友投稿 227 2022-09-24

Vue axios 请求数据时 php 无法接收到数据,解决

Vue axios 请求数据时 php 无法接收到数据,解决

一、实例,无法接收到数据

如图,我以 ​​post​​​ 的方式发送一个请求到 ​​php​​ 后台,请求中是有数据的,但后台没有接收到数据。

二、解决办法

这是因为 ​​axios​​​ 发送数据时不是以 ​​formData​​​ 的形式发送的,而 ​​php​​​ 接收的是以 ​​formData​​​ 形式的数据。 所以我们只需要把数据在请求之前转换一下就好。

这里我们用到一个工具 ​​qs​​​ 只需要 ​​qs.stringfy(data)​​​ 即可。 你可以在每次请求时都手动 ​​​stringfy​​ 一次,但是这样麻烦。

我们可以直接在 ​​axios​​​ 的默认设置中进行这个操作:​​​axios​​​ 可以设置默认配置,可以设置每次请求之前对数据进行处理,字段是 ​​axios.defaults.transformRequest​​ 接收的是数组。

在 ​​package.json​​​ 不添加 ​​qs​​ 工具,这个就不细说了。

在 ​​main.js​​ 中添加如下内容:

// Network requestimport qs from 'qs'import axios from 'axios'// 设置 axios,把请求数据在这里转换一下,参考官方文档: = [(data, header) => { return qs.stringify(data);}]// 可以设置全局变量,这样就可以全局通过 this.$axios 使用 axios 了Vue.prototype.$axios = axios

或者 你也可以自己封装一个方法,在里面自己用 qs 转换一下:

function postData(url, queryData) { return new Promise(function (resolve, reject) { axios.post(url, qs.stringify(queryData)) .then(res => { if (res.data.success) { resolve(res.data) } else { popMessage(POP_MSG_TYPE.danger, res.data.info ) } }).catch(() => { reject() }) })}

三、结果

这样处理之后,后台 ​​php​​ 就能正常接收到数据了。

本文参考博文:​​Vue使用axios POST提交数据PHP却无法接收到参数?​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《中小学英语素养课堂教学标准》征求意见稿发布 多维度评估教学!
下一篇:Ztree 勾选父类时忽略其所有子类数据,其它正常,如何配置
相关文章

 发表评论

暂时没有评论,来抢沙发吧~