我正在尝试使用带有axios的FormData()发布数据。 Laravel是我的后端。
当我尝试dd
(死并转储)我的$request->all()
在控制器中时,我得到一个空数组[]
。
这是我处理帖子的代码:
data() {
let formData = new FormData();
formData.append('first_name', 'Max');
formData.append('first_name', 'Sample');
return formData;
}
submit(requestType, url) {
console.log(this.data().get('first_name')); // Output is correctly 'Max'
return new Promise((resolve, reject) => {
axios[requestType](url, this.data())
.then(response => {
this.onSuccess(response.data);
resolve(response.data);
})
.catch(error => {
this.onFail(error.response.data)
reject(error.response.data);
});
});
}
sendData() {
const id = 123;
this.submit(patch, '/persons/' + id);
}
但是,如果我这样格式化数据:
data() {
let data = {
'first_name': 'Max',
'last_name': 'Sample'
};
return data;
}
我在控制器中的dd($request->all()
输出正确。
编辑
我找到了问题的原因。它与HTTP方法patch
有关。如果我使用post
,则数据发送成功。它必须与要发送的标头有关,但我找不到解决方案。