我正在构建一个小型 Nancy webapp,它将在表上执行 CRUD 操作。它使用 GET、POST 和 DELETE 动词。我想在网页中有一个链接来调用删除方法。默认情况下,使用“锚”标签将使用 GET 方法。我不喜欢将 web 服务更改为使用 GET 动词来执行删除操作,因为它会破坏 RESTful 概念。在这种情况下,最佳做法是什么?
问问题
1043 次
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 DELETE
,GET
被认为是一种安全的操作并且不应该改变你的应用程序的状态。
你应该使用DELETE
也可以使用POST
(因为有些防火墙不允许DELETE
)。
于 2012-06-19T07:06:05.477 回答