Post VueJs-如何使用axios设置动态参数
我有一个这样的案子 首先我从服务器获取数据,然后响应是Post VueJs-如何使用axios设置动态参数,post,dynamic,parameters,vuejs2,axios,Post,Dynamic,Parameters,Vuejs2,Axios,我有一个这样的案子 首先我从服务器获取数据,然后响应是 { data: { id: 4, status: A, items: { child: [ { id: 28, product_id: 1 }, { id: 33, product_id: 4 } ] } }, status: 200, error: 0 } 在
{
data: {
id: 4,
status: A,
items: {
child: [
{
id: 28,
product_id: 1
},
{
id: 33,
product_id: 4
}
]
}
},
status: 200,
error: 0
}
在这之后,我希望将数组items.child作为参数发送到POST中的数据响应。
以下是POST中要设置的参数格式:
item_id : data.id
item_status: data.status
item_combo_28_0: 1|0
item_combo_33_1: 4|1
item_combo是从响应数据获取的动态参数
注意:项目组合(child.id)_索引:child.product_id |索引
这是我的axios代码
getData() {
let headers = {
Authorization: 'Bearer ' + window.accessToken
}
let id = val
axios({
method: 'GET',
url: BASE_API('productcombo/' + id),
headers: headers
})
.then(response => {
this.itemCombo = []
this.dataResponse = response.data.data
this.setItemPackage()
this.loading = false
})
.catch(error => {
this.loading = false
})
},
setItemPackage() {
if (this.dataResponse.items.child.length > 0) {
this.dataResponse.items.child.map((row, idx) => {
this.$set(row, 'item_combo_' + row.id + '_' + [idx], row.product_id + '|' + idx)
this.itemCombo.push(row)
console.log(this.itemCombo)
})
}
}
预期:如何在POST的动态参数中设置(项目组合)的数组变量
这是我的邮政编码
sendData() {
this.loadingPackage = true
let headers = {
Authorization: 'Bearer ' + window.accessToken
}
let data = {
item_id: this.dataResponse.id,
item_tatus: this.dataResponse.status,
======= Here my expect =========
item_combo_27_0: 13 | 0,
item_combo_3_1: 15 | 0
================================
}
axios({
method: 'POST',
url: BASE_API('openorder/additemcombo'),
headers: headers,
data: data
})
.then(response => {
this.result = response.data
}
if (response.data.error) {
this.$message({
message: 'Error Network',
type: 'error'
})
}
})
.catch(() => {
this.$notify({
message: 'Error Connections',
type: 'warning'
})
})
},
我不确定我是否理解正确,但在
setItemPackage
函数中,您已经有了将responseData
转换为变量的代码。因此,您只需要在sendData
函数中使用它,在该函数中创建将通过axios发送的对象
sendData() {
this.loadingPackage = true
let headers = {
Authorization: 'Bearer ' + window.accessToken
}
let data = {
item_id: this.dataResponse.id,
item_tatus: this.dataResponse.status,
}
if (this.dataResponse.items.child.length > 0) {
this.dataResponse.items.child.map((row, idx) => {
data['item_combo_' + row.id + '_' + idx] = row.product_id + '|' + idx);
})
}
axios({
method: 'POST',
url: BASE_API('openorder/additemcombo'),
headers: headers,
data: data
})....
expected:如何在POST的动态参数中设置(项组合)的数组变量。你能根据那句话给我举个例子吗?你在setItemPackage
中的console.log
的结果是什么?这就是你想要的吗?您希望何时发出axios post请求?很难理解您已经完成了什么以及还需要做什么。@rafid我想设置如下参数“item_combo_(child.id)_index:child.product_id | index”,这里是一个示例:“item_combo_28_0:1 | 0”@MatthiasS这里是我的concole.log{data:{id:4,status:A,items:{child:[{id:28,product_id:1,item_combo_28_0:1|0},{id:33,product_id:4,item_combo_33_1:4|1}]},状态:200,错误:0}@dede.brahma没有问题:}请接受答案