vue 解决请求接口时候需要body以及query同时传参的问题
首先 接口需要我们传参的格式是这样的分为两部分 请求参数以及body参数
·
问题:如何实现在请求的时候body(post请求的请求体)中传只有键值的数组对象并且需要传其他的键值对参数?
接口需要我们传参的格式如下图所示:
解决方法:
首先因为要用到body传数组所以必须使用post请求 只有post才有body(消息体||请求体) 原先时候我是使用的第一种 直接把请求参数拼接到url后面然后把body参数通过data传给后台 后面去官网看了看 发现post请求自己有一个params参数可以直接传请求参数 不需要通过拼接就可以实现
//第一种 将params参数直接拼接到url后面 body的参数写入data
//这种不好 url有字数限制并且容易拼接出错
axios({
method: 'post',
url: '/wyLivingPaymentData/web/updateById?id='+1,
headers: {
'Content-Type': 'application/json'//设置Content-Type为json
},
data: this.form.dataDetailList
}).then(res => {
resolve(res.data);
}).catch(err => {
reject(err.data);
});
//第二种 通过params参数把拼接在url后面的值传给后台
axios({
method: 'post',
url: '接口地址',
headers: {
'Content-Type': 'application/json'//设置Content-Type为json
},
//因为params里的参数是拼接到url 参数不能带中文跟空格
//因为我billDate参数带了空格 所以用encodeURI编码 后端接收到使用decodeURI解码
params: {
id: 1,
billDate: encodeURI(2021-01-12 00:00:00)
},
//data就是body(消息体)
data: this.form.dataDetailList
}).then(res => {
resolve(res.data);
}).catch(err => {
reject(err.data);
});
更多推荐
已为社区贡献1条内容
所有评论(0)