为delete请求如何传参和前端开撕,我该怎么办?
发布于 7 年前 作者 JarvisQJ 14752 次浏览 来自 分享

api原定delete请求传参放在body里面,但是iOS那边说用的HTTP框架不支持放在body,默认使用URL上拼接;还说标准做法是delete传参在head进行拼接。 说实在,我并不清楚所谓标准,查的资料说的也不是很清楚。 目前要改成URL拼接传参,其他所有delete接口都得改,web和安卓那边已经对接的delete接口方面也要做较多改动。请教各位,我如何处理?

2 回复

https://tools.ietf.org/html/rfc2616#section-4.3 可以看到:

A message-body MUST NOT be included in a request if the specification of the request method (section 5.1.1) does not allow sending an entity-body in requests.

但是在 https://tools.ietf.org/html/rfc2616#section-9.7 对 DELETE 方法的描述中,并没有说不能有。

这里还有一些讨论:https://stackoverflow.com/questions/299628/is-an-entity-body-allowed-for-an-http-delete-request

总的来说,从标准的角度,就是“没有说不能有”。但是,确实有些服务端实现,会忽略 DELETE 方法的 body 部分的。


但是iOS那边说用的HTTP框架不支持放在body

你说让他换一个框架,或者叫他自己重新写一个就好了啊。

目前要改成URL拼接传参,其他所有delete接口都得改,web和安卓那边已经对接的delete接口方面也要做较多改动。请教各位,我如何处理?

这个年代,服务端同时支持从 URI 和 body 中取参数,不是什么困难的事吧。

@yszou 谢谢,看了你挂的几个链接,技术上说,用body传参没有问题。不过为了和谐,我决定实现你的最后一句话。

回到顶部