避免基于特定URL字符串设置cookie

avoiding setting a cookie based on a specific URL string

本文关键字:字符串 设置 cookie URL 于特定      更新时间:2023-09-26

我正在根据用户首次访问网站设置cookie。因此,每次新用户访问网站时,我都会将他们重定向到登录页,否则用户将直接看到索引页(因为cookie已经在用户的浏览器中了)。

现在,我试图实现的是,我希望跳过基于特定URL的登录页重定向(针对新用户和现有用户)。

这就是我检查新访问并设置重定向cookie的方式。

$(document).ready(function() {
    landingPageOnFirstVisit();
    createCookie('landingRedirect', 'true', '60');
});
function landingPageOnFirstVisit() {
    var setCookieForLanding = readCookie('landingRedirect');
    if (!setCookieForLanding) {
        window.location = "/en/landing";
    }
}
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

我如何确保如果用户使用下面提到的URL模式直接访问网站:重定向过程不会发生,我们也不会设置任何cookie。

https://www.domain.com/en/page?usePromo=XXXXXX
(其中XXXXXX是数字,每次都会更改)

尝试

$(function() {
    if (location.href.indexOf("usePromo")==-1) {
      landingPageOnFirstVisit();
      createCookie('landingRedirect', 'true', '60');
    }
});