vue axios发布如何提交formdata数组?

时间:2020-01-28 05:15:37

标签: vue.js axios

我需要提交阵列数据,因为后端只能识别此类数据

预期效果:

&row[weigh]=0
&row[status]=normal

代码:

row:{
  weigh: 0,
  status: 'normal'
}

实际效果:

row:{
  weigh: 0,
  status: 'normal'
}

提交数据时,控制台显示JSON而不是Array,但后端无法获取

我需要与以下表单提交的结果保持一致

<form  method="POST" >
  <input name="row[a]" type="text" value="">
  <input name="row[b]" type="text" value="">

4 个答案:

答案 0 :(得分:1)

public register(rowObject: RowObject): AxiosPromise<any> {
    return axios.post('http://localhost/api/register', rowObject);
}

这样,您可以通过Post方法传递数据。

rowObject =  {
    weigh: 0,
    status: 'normal'
    }

答案 1 :(得分:0)

您的代码也应该像这样传递一个数组。

data = [
  {weigh: 0},
  {status: 'normal'}
]

然后,当您使用axios将其发送到服务器时,您的代码应如下所示:

axios.post('/api endpoint', {row:data})
    .then(response => {
     // response here
});

答案 2 :(得分:0)

const formData = new FormData()
  Object.keys(this.form).forEach(e => {
  formData.append(`row[${e}]`, this.form[e])
})

答案 3 :(得分:0)

尝试此代码。

let row = {
  weigh: 0,
  status: 'normal'
};

let finalArr = [];

Object.keys(row).forEach((key) => {
    finalArr.push(`row[${key}]=` + row[key]);
});
console.log(finalArr.join('&'));
// outputs: row[weigh]=0&row[status]=normal