我想在Rails应用程序的视图中创建一个链接,实现以下功能...
DELETE /sessions
我该怎么做。
额外的复杂性:
"session"资源没有模型,因为它代表用户登录会话。CREATE
表示用户登录,DESTROY
表示注销。
这就是为什么URI中没有ID参数。
我正在尝试在UI中实现“注销”链接。
DELETE /sessions
我该怎么做。
额外的复杂性:
"session"资源没有模型,因为它代表用户登录会话。CREATE
表示用户登录,DESTROY
表示注销。
这就是为什么URI中没有ID参数。
我正在尝试在UI中实现“注销”链接。
正确,浏览器实际上不支持发送删除请求。许多Web框架的接受惯例是发送一个设置为“DELETE”的_method参数,并使用POST请求。
这里是Rails的一个示例:
<%= link_to 'log out', session_path, :method => :delete %>
您可能想要查看Restful Authentication。
<a class="delete" href="/path/to/my/resource">delete</a>
并运行此 JavaScript:
$(function(){
$('a.delete').click(function(){
$.ajax(
{
url: this.getAttribute('href'),
type: 'DELETE',
async: false,
complete: function(response, status) {
if (status == 'success')
alert('success!')
else
alert('Error: the service responded with: ' + response.status + '\n' + response.responseText)
}
}
)
return false
})
})
我凭记忆写了这个示例,但我相当肯定它可以工作...
<a href="/sessions?method=delete" rel="nofollow">Logout</a>
rel="nofollow"
,这会防止搜索引擎爬虫跟踪链接),你也可以手动编写链接并添加 data-method
属性,像这样:
<a href="/sessions" data-method="delete">Logout</a>
如果我说错了,请告诉我,但我认为您只能使用浏览器(在HTML中)发送POST和GET请求。