关于使用axios POST方法请求,后端接收不到参数的问题
2018-12-11 本文已影响0人
自律财富自由
问题前提:
使用post请求后端数据
一开始我也没注意看接口文档,就按照json的接收格式来写的:
this.$ajax({
method:"POST",
url:url,
data: {
isIncludeDeleted:1,
}
}).then((res) => {
console.log('res = ', res)
}).catch(() => {
console.log('数据异常')
})
后端一直没有收到我传过去的参数,但是我浏览器上显示有参数,而且请求状态是200,但是后端数据返回错误。
查资料啊,看到一篇很好的博客,讲解了post请求的几种请求方式。地址点击这里
才明白,我上面写的只是POST请求方式的其中一种,也是默认的一种,json格式的。
而我项目中用到的就是另外一种:Content-Type: application/x-www-form-urlencoded,这是其中一种原因
另外一个原因是:没有注意看接口文档,接口文档中标注了post传参的形式是query(也就是url?params=1这种形式),而不是通常使用的bod形式(也就是data: {}这种形式)
找到问题所在,就很容易就解决了。
解决办法:
改变传参形式,由原来的body形式改为query形式。
this.$ajax({
method:"POST",
url:'url?isIncludeDeleted=1',
headers: {'Content-Type': 'application/json'},
// data: {
// "isIncludeDeleted":"1",
// }
}).then((res) => {
console.log('res = ', res)
}).catch(() => {
console.log('数据异常')
})