javascript - 为cookie检查功能添加条件而不会导致无限循环
问题描述
我有一个网页,在页面加载时检查 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 */ }
推荐阅读
- python - 多个函数调用 QTimer Mainwindow 挂起
- python - 如何重新格式化一串字符串操作并获得其结果
- angular - 如何进行单元测试以检查小吃店是否营业
- sql-server - 根据条件创建动态 SQL Select
- javascript - 反应时handleChange函数的问题
- angular - 通信 - 具有多个父组件的子组件
- python - 如何使用 Flask 将数据库记录呈现为 HTML?
- reactjs - 在“Connect(App)”的上下文中找不到“store”
- java - 使用多模块 Maven 项目时 Eclipse 的类路径问题
- java - 将 JTable 中的数据导出为 PDF 格式