1

我正在构建一个小型 Nancy webapp,它将在表上执行 CRUD 操作。它使用 GET、POST 和 DELETE 动词。我想在网页中有一个链接来调用删除方法。默认情况下,使用“锚”标签将使用 GET 方法。我不喜欢将 web 服务更改为使用 GET 动词来执行删除操作,因为它会破坏 RESTful 概念。在这种情况下,最佳做法是什么?

4

2 回答 2

3

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

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

一个带有 Jquery ajax 方法的小样本:

<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) {        
  }});
});
于 2012-06-19T07:11:11.793 回答
1

你不应该使用GET动词 for DELETEGET被认为是一种安全的操作并且不应该改变你的应用程序的状态。

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

于 2012-06-19T07:06:05.477 回答