所以我有一个我想使用 ajax 处理的注销链接。
<li><%= link_to('Logout', "#", :method => :delete, :remote => true, :class => 'logout') %></li>
但是,每次都必须重新加载页面才能使注销工作,然后才能呈现部分。登录工作绝对正常。当在没有重新加载页面的情况下单击注销链接时,它只会删除到 localhost,由于某种原因它不会删除到 /users/sign_out。然后页面需要再次重新加载以更新 $(#user_login_box)。这仅在注销时。
$(document).ready(function() {
function setNotice(data) {
var $flash = $("<div>",{
'class': 'alert alert-success',
'html': data.data.message
});
var $link = $("<a>",{
'html': 'x',
'class': 'close',
'href': '#',
'data-dismiss': 'alert'
}).data("dismiss","alert").prependTo( $flash );
$('#account').html(function(){
return data.login ? data.email : "Account" ;
});
$('.row').prepend($flash);
$('#user_login_box').html(data.content);
}
$('form#sign_in').bind('ajax:success', function(e, data, status, xhr) {
console.log(data);
if(data.success) {
setNotice(data)
} else {
$('#status').html(data.data.message);
}
});
$(".logout").on("click", function(e){
e.preventDefault();
$.post("/users/sign_out", {_method:"delete"}, function(data){
setNotice(data);
});
});
});