首页 >后端开发 >php教程 >**为什么 Laravel 中使用 FormData 的 PATCH 和 PUT 请求会失败?**

**为什么 Laravel 中使用 FormData 的 PATCH 和 PUT 请求会失败?**

Barbara Streisand
Barbara Streisand原创
2024-10-24 18:13:461043浏览

**Why Do PATCH and PUT Requests with FormData Fail in Laravel?**

Laravel 中带有 FormData 的 HTTP PATCH 和 PUT 请求

在 Laravel RESTful 应用中,经常会遇到 PATCH 和 PUT 请求检索失败的情况使用 form-data 从 Postman 发送的数据。

问题

使用 form-data 时, $request->all() 方法返回一个空数组用于 PATCH 和 PUT 请求。这会阻止后端接收预期的参数。

解决方案

要解决此问题,可以采用一种解决方法,将 PUT 或 PATCH 请求转换为 POST 请求Postman:

  1. 在 Postman 中,创建一个新请求并选择 POST 方法。
  2. 导航到“Body”选项卡并选择“form-data”作为数据格式。
  3. 在“Key”和“Value”字段中添加所需的参数。

通过修改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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn