从网页调用DELETE restful方法的最佳做法是什么?

时间:2012-06-19 07:02:19

标签: c# restful-architecture nancy

我正在构建一个小型的Nancy webapp,它可以在桌面上进行CRUD操作。它使用GET,POST和DELETE动词。我想在网页中有一个链接来调用delete方法。默认情况下,使用“锚”标记将使用GET方法。我不习惯更改Web服务以使用GET动词执行删除操作,因为它会破坏RESTful概念。在这种情况下最好的做法是什么?

2 个答案:

答案 0 :(得分:3)

您不应该使用GET动词进行破坏性/状态更改操作,因此使用DELETE或POST是可行的方法(在您的情况下DELETE在语义上是正确的)。

使用javascript,您可以挂钩锚定点击事件并使用DELETE动词触发请求。

使用Jquery ajax method的小样本:

<a href='/deleteAction/myId' class='deleteLink'>Delete me</a>

$('.deleteLink').click(function(e){
   e.preventDefault();
   $.ajax({
     url: $(this).attr('href'),
     type: 'DELETE',
     success: function(result) {        
  }});
});

答案 1 :(得分:1)

您不应将GET动词用于DELETEGET被视为安全操作,不应更改应用程序的状态。

您应该使用DELETE,也可以使用POST(因为某些防火墙不允许DELETE)。