💂 个人网站: 【紫陌】【笔记分享网】
💅 想寻找共同学习交流、共同成长的伙伴, 请点击【前端学习交流群】今天开发项目遇到post请求后端接收不到,浏览器都检测到我的请求,后端就是接收不到我的参数,卡我很久今天终于弄好了,踩了一个坑,给大家指指路。
问题场景
axios({
method: 'post',
url: '/api/lockServer/search',
data: {
username,
password
}
})
后台说没有接收到你的传参。
这就有点奇怪了,我看了一下浏览器的请求信息是 OK 的,参数都是有的,而且之前这样用 axios 也没有这个问题。
但是这个接口是通用的,别人都用了,是 OK 的,接口没问题
我的问题原因:
1.
后台要前端发送application/x-www-form-urlencoded 格式的表单数据
2.
我们还可以看到我们这次请求的 Content-Type:application/json;charset=UTF-8
解决办法
【用 URLSearchParams 传递参数】
let param = new URLSearchParams()
param.append('username', 'admin')
param.append('pwd', 'admin')
axios({
method: 'post',
url: '/api/search',
data: param
})
需要注意的是:
URLSearchParams
不支持所有的浏览器,但是总体的支持情况还是 OK 的,所以优先推荐这种简单直接的解决方案
这个就可以解决我的问题
还有很多办法可以看这篇文章
axios 发 post 请求,后端接收不到参数的解决方案_Never Yu的博客-CSDN博客_axios发送post请求带参数