用于删除请求的Slim Framework和getParsedBody

问题描述 投票:0回答:1

我正在尝试将参数作为对DELETE请求的API形式从主体中传递(从表单)

$allVars = $request->getParsedBody();

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

关于此的任何提示吗?

php slim http-delete slim-3
1个回答
0
投票

根据HTTP specification,由于没有“定义的语义”,因此服务器应忽略DELETE请求正文:

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

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

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

DELETE /resource/1234

Is an entity body allowed for an HTTP DELETE request?

© www.soinside.com 2019 - 2024. All rights reserved.