Laravel 中帶有FormData 的HTTP PATCH 和PUT 請求
在Laravel RESTful 應用中,經常會遇到PATCH 和PUT 請求檢索失敗的情況使用form-data 從Postman 發送的資料。
問題
使用 form-data 時, $request->all() 方法傳回一個空數組用於 PATCH 和 PUT 請求。這會阻止後端接收預期的參數。
解決方案
要解決此問題,可以採用一種解決方法,將PUT 或PATCH 請求轉換為POST 請求Postman:
透過修改Postman中的請求類型,資料將作為POST請求成功發送,即使它被作為 PATCH 或 PUT 請求進行路由。
範例
對於透過表單資料傳送資料的POST 要求:
Route::post('testimonials/{testimonial}', 'TestimonialController@update');
在Postman 中使用帶有表單資料的PATCH 或PUT時:
// Request will be received as a POST request Route::patch('testimonials/{testimonial}', 'TestimonialController@update'); Route::put('testimonials/{testimonial}', 'TestimonialController@update');
注意:
此解決方法可能不符合RESTful 原則,因為它有效地改變了請求類型為POST。然而,它提供了一個功能解決方案,用於透過帶有 PATCH 和 PUT 請求的表單資料傳輸資料。
以上是**為什麼在 Laravel 中使用 FormData 的 PATCH 和 PUT 請求會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!