Я пытаюсь опубликовать свои данные, используя FormData () с axios. 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()
в моем контроллере.
EDIT
Я нашел причину своей проблемы. Это связано с методом HTTP patch
. Если вместо этого я использую post
, данные отправляются успешно. Это должно быть связано с отправляемыми заголовками, но я пока не смог найти решение.