如何在Play中调用非GET / POST HTTP方法?

时间:2012-05-06 16:56:33

标签: rest playframework playframework-2.0

我有一个RESTful Play 2.0应用程序,我想通过浏览器中的链接呼叫DELETE /sessions

我该怎么做? Rails有一个为非GET / POST请求使用_method查询参数的约定,但Play的文档没有提到这一点。

另外,我是否必须创建单独的表单或XMLHttpRequest才能从链接的href调用方法,或者是否有类似Rails data-method属性的内容?

1 个答案:

答案 0 :(得分:0)

你不会用共同的链接做到这一点。

Cite from similar topic on Google Groups

  

链接(A标记)不适用于DELETE方法。语义   链接是“链接”到另一个可以检索的资源   使用GET请求。您可以在Ajax或表单中执行DELETE请求   使用POST方法并包含带名称的隐藏输入   “X-HTTP-Method-Override”和值“DELETE”。

这是什么意思:您需要使用GET删除项目:

conf/routes中的

GET   /delete/:itemId    controllers.Application.deleteItem(itemid : Long)
在您看来

<a href="@routes.Application.deleteItem(item.id)">Delete @item.name</a>

或者使用AJAX调用:

<script type="text/javascript">
    $.ajax({
        url:"@routes.Application.actionToDeleteSomething()",
        type:"DELETE"
    });
</script>