问题:如何实现在请求的时候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);
			});

Logo

前往低代码交流专区

更多推荐