项目场景:
在用axios+Django
开发一个简单的前后端分离留言板功能过程中, 遇到了一个小小的问题, 搞了几分钟才解决掉, 下面看一下问题的详细。
问题描述
先来看一下我的代码。
axios.post('http://127.0.0.1:8000/add/', {name:'zs',age:20}).then(res => {console.log(res);})
本来我打算用axios.post()
方法进行提交数据, 结果发现后端接收到的POST
数据是空的, 看下面这张图。
可以看到我在上面打印输出了POST
数据, 下面显示的也是POST请求
, 结果还是没有数据。
原因分析:
因为在post请求中不能直接使用对象
作为参数, 需要转换成键=值&键=值
的形式才可以使用。
解决方案:
写一个函数对对象
进行序列化
。
function objToParams(obj) {let arr = [];for (let key in obj) {arr.push(`${key}=${obj[key]}`);}return arr.join('&');}
在请求时调用这个序列化函数
。
let obj = {name: '张三',age: 20}axios.post('http://127.0.0.1:8000/add/', objToParams(obj)).then(res => {console.log(res);})
我就可以成功的拿到数据了。
如果觉得《Vue-使用axios进行post请求时参数接收不到》对你有帮助,请点赞、收藏,并留下你的观点哦!