Rest 如何在YesSOD中调用删除请求方法?

Rest 如何在YesSOD中调用删除请求方法?,rest,haskell,yesod,Rest,Haskell,Yesod,关于路由的书()中有一段: 每个请求方法的单独处理程序都是相同的,加上 请求方法列表。请求方法必须全部为大写 信件。例如,/person/#String PersonR GET POST DELETE。在这个 在这种情况下,您需要定义三个处理函数getPersonR, postPersonR和deletePersonR 表演 curl-X删除本地主机:3000/人/1 工作正常,因此服务器能够处理这些请求 有几个示例(如和)使用GET或POST请求(而不是DELETE)来处理此问题 是否有一种直

关于路由的书()中有一段:

每个请求方法的单独处理程序都是相同的,加上 请求方法列表。请求方法必须全部为大写 信件。例如,/person/#String PersonR GET POST DELETE。在这个 在这种情况下,您需要定义三个处理函数getPersonR, postPersonR和deletePersonR

表演

curl-X删除本地主机:3000/人/1

工作正常,因此服务器能够处理这些请求

有几个示例(如和)使用GET或POST请求(而不是DELETE)来处理此问题


是否有一种直接的方法从Yesod代码调用删除请求?因此,路由处理程序
deletePersonR
被调用?

GET
POST
方法不同,
DELETE
方法需要使用JavaScript,并非所有浏览器都支持。这就是为什么经常使用
POST
。要从JavaScript调用
DELETE
方法,最简单的方法是使用JavaScript框架,例如:


您不能直接调用
deletePersonR
?另外,如果您使用Julius生成此Javascript,您可以使用类型安全URL而不是“/person/1”。PSA:如果您使用带有POST方法的表单、样式类似于链接的按钮以及
wai extra
包,则无需使用Javascript即可完成此操作。
$.ajax({
  url: "/person/1",
  type: "DELETE",
  success: function(html){
    alert("Ok, deleted");
  }
});