我这样的ajax axios:
let formData = new FormData()
formData.append('file', user.avatar)
formData.append('selected_data', JSON.stringify(user))
axios.post('/member/profile/update',
formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}
)
.then(response => cb(response))
.catch(error => ecb(error))
我的路线是这样的:
Route::post('update', 'member\UserController@update')->name('member.profile.update');
如果脚本已执行,则可以正常运行。我成功获得了数据
但是在这里,我想改变post方法来放置方法。因为这用于更新配置文件
我这样改变:
axios.put(...
路线:
Route::put('update', ...
我没有成功获取数据。发送的数据为空
我该如何解决这个问题?
更新:
如果我console.log(user)
,结果如下:
答案 0 :(得分:2)
Laravel对PUT使用方法欺骗,使用axios.post
并将以下内容添加到您的请求数据中:
data: {
...
_method: 'PUT',
...
}
你可以这样做:
formData.append('_method', 'PUT')
使用axios的完整示例:
axios.post('/user', { _method: 'PUT', foo: 'bar' })
.then(function (response) { console.log(response); })
.catch(function (error) { console.log(error); });