无法通过邮递员 put 请求提交表单数据

Posted

技术标签:

【中文标题】无法通过邮递员 put 请求提交表单数据【英文标题】:Could not submit form-data through postman put request 【发布时间】:2018-12-20 11:20:58 【问题描述】:

我正在使用 lumen api 5.6。 这是我的路线 $router->PUT('collections/collectionId' 在邮递员中,我像这样调用这个 api。

这是该请求的正文

请看这里,我在这里有 CollectioPoints,但验证失败。 我通过 formdata 发送的数据在验证中无法识别。

但是,如果我将路由从 put 发送到 post [$router->POST('collections/collectionId'],我通过表单数据发送的所有数据都会被识别,并且我会得到正确的响应,如下所示

为什么会这样。我不能通过 put 请求发送表单数据吗? 谢谢。

【问题讨论】:

尝试添加到标题 Content-Type:multipart/form-data 我试过@J.Doe 它也不起作用 【参考方案1】:

Laravel(Lumen) 作弊,因为 html 表单只支持 GET 和 POST,但它确实理解真正的 PUT/PATCH 请求。

在 Postman 中您应该发送 POST 并将 _method 设置为 PUT(与发送表单相同)以使您的数据和文件可见

 _method = "PUT"

或者

如果您没有任何文件只有数据,那么您可以在 Postman 中选择以下选项中写入参数

 x-www-form-urlencode 

或者

您想使用 PUT 方法通过 form-Data 选项发送数据,您应该使用类似 https://gist.github.com/devmycloud/df28012101fbc55d8de1737762b70348

的东西

【讨论】:

【参考方案2】:

例子

标头:Content-Type application/x-www-form-urlencoded

_method = "PUT"

你的控制器

return $request->file('avatar');

图片示例

【讨论】:

我必须把 (_method = "PUT") 放在哪里??

以上是关于无法通过邮递员 put 请求提交表单数据的主要内容,如果未能解决你的问题,请参考以下文章

解决:通过ajax,PUT方式提交的数据无法获取的问题

如果 CSRF Token 通过 Postman 我们可以在不提交表单的情况下获取数据吗

Ruby on rails -- Jquery 在另一个 post 请求之前没有提交 put 请求

POST与PUT

为啥django不处理PUT方法带过来的表单

无法提交 Axios Post 表单 Nuxt.js (VueJS)