1

我有资源 uri 作为/avl/leagues/leagueName. 想法是以一种完整的方式删除具有提供名称的联赛。我尝试了以下方法,但浏览器总是发送 aGET而不是DELETE. 任何想法为什么?我在服务器端使用 Tomcat。

<form action="/avl/leagues/Cccccc" method="DELETE">
   <input type="submit" value="Cancel league">
</form>
4

2 回答 2

4

HTML 表单仅正式支持 GET 和 POST提交。

通常,人们通过通过 Ajax 发送请求或在表单中包含一个隐藏字段来告诉服务器端代码将此请求视为 DELETE 而不是 GET 来解决该限制。(当然,服务器端代码必须知道查找该字段并采取相应措施。)

于 2013-08-24T11:38:19.957 回答
2

浏览器不是很好的安静客户端。他们基本上使用 POST 和 GET 作为表单,仅此而已。

Spring MVC 表单标签库允许将 DELETE 指定为方法 IIRC,并且实际上会在表单中添加一个隐藏字段,告诉服务器尽管该方法不是真正的 DELETE(因为浏览器无法发送此类请求),它应该被服务器视为删除(感谢过滤器)。有关类似问题及其答案,请参阅在 Spring MVC 中使用 PUT 和 DELETE 方法。

于 2013-08-24T11:39:36.093 回答