我正在尝试向 Laravel 5.6 api 发送 Axios PATCH 请求。
我的请求包含 FormData 。
Laravel 的 api 端点不会读取任何发送的数据。
ReactJS 代码
let data = new FormData();
data.append("photo", this.state.photo);
// append another data ....
const headers = {
'Content-Type': 'multipart/form-data',
'enctype' : 'multipart/form-data',
'Authorization' : 'Bearer ' + token
}
axios({
method : "PATCH",
baseURL: this.baseURL,
url : url,
params : params,
data : data,
headers: headers,
}).then(response => {
return response
})
Laravel 补丁请求
public function update(Request $request, $planId)
{
$data = $request->all();
dd($data);
}
Laravel 请求打印一个空数组
[]
。
最佳答案
可悲但真实,当从浏览器请求时,Laravel 没有正确响应 PATCH 或 PUT 请求。
一个快速的解决方案可能是使用 POST
并添加 _method: PATCH
作为 post 参数。
请尝试使用此更新的代码
let data = new FormData();
data.append("_method", 'PATCH');
data.append("photo", this.state.photo);
// append another data ....
const headers = {
'Content-Type': 'multipart/form-data',
'enctype' : 'multipart/form-data',
'Authorization' : 'Bearer ' + token
}
axios({
method : "POST",
baseURL: this.baseURL,
url : url,
params : params,
data : data,
headers: headers,
}).then(response => {
return response
})
可以在 axios.patch / axios.put is not working in Vue and Laravel 中找到相同问题的另一个示例
关于php - Laravel PATCH 请求不读取 Axios 表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55116787/