由於 formData 格式沒有支援 PUT
、PATCH
、DELETE
,因此傳送資料時需要偽裝成 POST
。做法是在表單中加入一個隱藏的欄位:
<form action="/foo/bar" method="POST"> <input type="hidden" name="_method" value="PUT"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> </form>
如果在 axios 或是 fetch 等 ajax 方法中也是類似:
const formData = new FormData() formData.append('_method', 'PUT') // fake to put formData.append('file', file.blob, file.name) axios.post(url, formData)