Javascript 是否根据登录状态更新DIV?

Javascript 是否根据登录状态更新DIV?,javascript,ruby-on-rails,ajax,devise,Javascript,Ruby On Rails,Ajax,Devise,目前,我的导航区中有一个,其中包含一个“会话/管理器”%>,它基本上调用另一个部分,根据用户的登录状态呈现登录表单或欢迎声明 我的登录部分由ajx支持,因此会自动刷新。这是我使用的代码 login.js $(document).ready(function() { $('form#sign_in').bind('ajax:success', function(e, data, status, xhr) { console.log(data); if(data.success

目前,我的导航区中有一个
,其中包含一个
“会话/管理器”%>
,它基本上调用另一个部分,根据用户的登录状态呈现登录表单或欢迎声明

我的登录部分由ajx支持,因此会自动刷新。这是我使用的代码

login.js

$(document).ready(function() {

  $('form#sign_in').bind('ajax:success', function(e, data, status, xhr) {
    console.log(data);
    if(data.success) {
      $('.user_nav').html(data.content);
    } else {
      $('.user_nav').prepend(data.errors.join('<br />'));
    }
  });

});
$(文档).ready(函数(){
$('form#sign_in').bind('ajax:success',函数(e、数据、状态、xhr){
控制台日志(数据);
if(data.success){
$('.user_nav').html(data.content);
}否则{
$('.user_nav').prepend(data.errors.join('
')); } }); });
现在,我想在我的页面上的另一个div包含各种链接,根据用户登录状态来隐藏或显示

目前我的代码是这样的

<% if(signed_in?) %>
  <li><%= link_to "Clients", "/clients"  %></li>
  <li><%= link_to "Jobs", "/jobs"  %></li> 
<% else %>
<% end %>

  • 然而,这并不是我想要的。链接一开始不会显示,这很酷,但当我登录时链接不会再次显示。。。除非我整页刷新


    我怎样才能了解这一部分

    改用CSS的Visibility属性,这就不太安全了,因为任何人都可以在源代码中看到链接,但工作起来会很顺利


    如果在JSP中,尝试通过该代码重新加载页面,在该代码中,看起来像是登录,正在进行,同时您的页面将被刷新。

    使用CSS的Visibility属性,这不太安全,因为任何人都可以看到源代码中的链接,但工作会很顺利

    如果在JSP中,请尝试通过代码重新加载页面,在该代码中,if看起来像是登录,正在进行中,同时您的页面将被刷新。


    您的示例不起作用,因为服务器必须再次呈现页面才能传递已签名的\u

    我建议不要使用ajax登录,只进行正常的提交并在没有ajax的情况下重新加载页面。 如果您仍然想使用ajax,可以使用javascript重新加载页面:

    window.location.href=window.location.href
    

    但是,你也可以正常提交,一切都应该正常

    永远不要在css可见性中这样做!这真的是不安全的,不是一个好的编程行为。服务器必须验证并向用户发送正确的html,具体取决于用户是否登录。


    您的示例不起作用,因为服务器必须再次呈现页面才能传递已签名的\u

    我建议不要使用ajax登录,只进行正常的提交并在没有ajax的情况下重新加载页面。 如果您仍然想使用ajax,可以使用javascript重新加载页面:

    window.location.href=window.location.href
    

    但是,你也可以正常提交,一切都应该正常


    永远不要在css可见性中这样做!这真的是不安全的,不是一个好的编程行为。服务器必须验证并向用户发送正确的html,这取决于用户是否登录。

    如何使用javascript重新加载页面?我不能只重新加载div/li类项吗?window.location.href=“Type\u URL\u of\u Current\u Page”如果只是部分如果HTML然后使用IFrame,并且在IFrame的引用页面内,这将使您的链接刷新该页面,因此它看起来只是页面刷新的一部分。如果不使用框架,请使用jQuery,如果你想轻松地做到这一点,这将很有帮助。
    $(“#content”).load(location.href+“#content>*”,“)参考:如何使用javascript重新加载页面?我不能只重新加载div/li类项吗?window.location.href=“Type\u URL\u of\u Current\u Page”如果只是部分如果HTML然后使用IFrame,并且在IFrame的引用页面内,这将使您的链接刷新该页面,因此它看起来只是页面刷新的一部分。如果不使用框架,请使用jQuery,如果你想轻松地做到这一点,这将很有帮助。
    $(“#content”).load(location.href+“#content>*”,“)参考: