需求:某个参数需要传入多个的情况
选择器是多选的情况,多选的数据是一个数组,直接将数组入参,无法达到效果。
开始想到的方法是将数据进行拼接,后面想到可以使用transformRequest方法进行参数格式化,方便其他地方调用
方式一:拼接
1 2 3 4 5 6 7
| //组件 selectValue是个数组 let params ="" this.selectValue.forEach(item => { params += `member=${item}&` }); params += `teamId=${this.teamId}`; this.addMem(params);
|
封装的方法
1 2 3 4 5 6 7 8 9 10
| export const postRequest = (url, params) => { return http({ method: 'post', url: url, data: params, headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, }); }
|
方式二:transformRequest方法进行参数格式化
1 2 3 4 5 6
| //组件 selectValue是个数组 let params = { member: this.selectValue, teamId: this.teamId }; this.addMem(params);
|
封装的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| export const postStrReq = (url, params) => { return http({ method: 'post', url: url, data: params, transformRequest: [function (data) { let ret = ''; for (let it in data) { ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'; } return ret.slice(0, -1); }], headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, }); }
|