1

所以我有一个我想使用 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);
  });
 });


});
4

1 回答 1

0

也许尝试将您的退出路径添加到链接。现在看起来 href 属性设置为哈希。据我所知,jquery-rails 使用 href 属性来确定请求的 url。

于 2012-05-18T20:57:10.710 回答