Slim Framework和getParsedBody用于删除请求

时间:2020-01-09 22:18:53

标签: php slim http-delete slim-3

我正在尝试将作为DELETE请求传递给API的参数(从表单)传递到正文中

$allVars = $request->getParsedBody();

但是由于某种原因,当对POST和PUT请求正常工作时,它将为空。

关于此的任何提示吗?

1 个答案:

答案 0 :(得分:1)

根据HTTP specificationDELETE请求正文应被服务器忽略,因为没有“定义的语义”:

DELETE请求消息中的有效负载没有定义的语义; 在DELETE请求上发送有效内容正文可能会导致某些现有内容 拒绝请求的实现。

利用请求正文进行DELETE http请求有点不寻常。许多HTTP客户端库不支持它,因此它迫使开发人员从低级构造请求。另一件事,我猜想某些流行的Web服务器如果将它们用作代理,则会像默认情况下对GET一样削减DELETE请求的主体,因此它需要对其进行附加配置。

我会将它们放在URL路径或URL查询参数中,例如:

DELETE /resource/1234

Is an entity body allowed for an HTTP DELETE request?