我正在构建一个小型的Nancy webapp,它可以在桌面上进行CRUD操作。它使用GET,POST和DELETE动词。我想在网页中有一个链接来调用delete方法。默认情况下,使用“锚”标记将使用GET方法。我不习惯更改Web服务以使用GET动词执行删除操作,因为它会破坏RESTful概念。在这种情况下最好的做法是什么?
答案 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
动词用于DELETE
,GET
被视为安全操作,不应更改应用程序的状态。
您应该使用DELETE
,也可以使用POST
(因为某些防火墙不允许DELETE
)。