formData 在 PUT 方法中的 workaround


由於 formData 格式沒有支援 PUTPATCHDELETE,因此傳送資料時需要偽裝成 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)

參考:
1. Laravel 表單欺騙方法
2. 请教 Ajax 请求 put 方法传递 FormData?


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *