繁体   English   中英

给cookie添加条件check function不会造成死循环

[英]Add condition to cookie check function without causing infinite loop

我有一个 web 页面,它在页面加载时检查 cookie,如果 cookie 不存在,则根据条件将用户重定向到某个登录页面。 我正在尝试向 cookie 检查添加另一个条件,但它正在创建一个无限循环。 有没有办法允许另一个条件?

function checkCookie() {
    var current_url = window.location.pathname;
    var logInCookie = _siteNS.Utils.readCookie('x-access');

    if (!logInCookie) {
      if (
        window.location.toString().includes('-fr') &&
        current_url != '/landing-fr.html'
      ) {
        window.location.replace('/landing-fr.html');
      } else if (
        window.location.href.indexOf('-fr') === -1 &&
        current_url != '/landing.html'
      ) {
        window.location.replace('/landing.html');
      } else if (
        window.location.href.indexOf('-fr') === -1 &&  *=== This is creating infinite loop===*
        current_url === '/Important_Safety_Information.html'
      ) {
        window.location.replace('/Important_Safety_Information.html');
      }
    }
  }

问题是您将用户重定向回他们已经在的页面。 当用户加载同一页面时,它将再次调用相同的逻辑并再次将用户重定向到同一页面。

来自对上述问题的评论:

我想要做的是,如果用户转到“/Important_Safety_Information.html”,请留在那里并且不要重定向

如果您不想重定向用户,那么...不要重定向用户。 完全删除最后一个else if块,因为您不想执行该操作。 或者,在最坏的情况下,如果您需要将此条件包含在正在进行的条件列表中,则只需将块留空:

else if (
  window.location.href.indexOf('-fr') === -1 &&
  current_url === '/Important_Safety_Information.html'
) { /* do nothing */ }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM