Javascript 如果cookie为空,则重定向

Javascript 如果cookie为空,则重定向,javascript,cookies,Javascript,Cookies,所以我现在正在学习关于cookie的知识,并从下面得到了我的cookie代码 在StackOverflow上,我查看了有关重定向的信息,我试图重定向到这里,因为cookie尚未设置。这将重定向到我的服务器上的一个页面,以接受cookie策略并自定义管理面板主题 <!-- Javascript BEFORE page loads Starts --> <script type="text/javascript"> function getCooki

所以我现在正在学习关于cookie的知识,并从下面得到了我的cookie代码

在StackOverflow上,我查看了有关重定向的信息,我试图重定向到这里,因为cookie尚未设置。这将重定向到我的服务器上的一个页面,以接受cookie策略并自定义管理面板主题

<!-- Javascript BEFORE page loads Starts -->
    <script type="text/javascript">

        function getCookie(cname) {
            var name = cname + "=";
            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);
                if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
                }
            }
            return "";
        }

        function checkCookie() {
            var user=getCookie("username");
            if (user != "") {
                alert("Cookie Set: " + user);
            } else {
               //user = prompt("Please enter your name:","");
               if (user != "" && user != null) {
                   window.location.replace("http://stackoverflow.com");
               }
            }
        }
    </script>
<!-- Javascript BEFORE page loads Starts -->

</head>
<!-- Header Ends -->

<!-- Body Starts -->
<body onload="checkCookie()">

函数getCookie(cname){
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);
对于(var i=0;i

为什么要在
else
块中检查
user!=“&&user!=null
?当代码进入此块时,
user
变量保证为空。这就是为什么
window.location.replace
没有执行以及它没有重定向的原因

    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }

   function checkCookie() {
   var user=getCookie("username");
    if (user != "") {
        alert("Cookie Set: " + user);
    } else {
       //user = prompt("Please enter your name:","");
           setCookie("username", "value", 1);
           window.location.replace("http://stackoverflow.com");
    }
}

在这里,阅读此内容,它可能会帮助您找到答案:@WildChild他正在按照答案执行操作。您无法在客户端上实现访问控制。您需要服务器端代码。访问控制意味着请@slaks您的脚本将永远不会重定向。您应该在window.location.replace之前更改/删除条件。这也不起作用,一个d如前所述,我正在学习,这是W3学校所做的,我说不出为什么抱歉。宾果和哇,这很奇怪,当你导航回来时,就像你没有进入原始页面。这是可以避免的类似链接点击吗?@Timmall你必须实现setCookie()方法。当用户返回站点时,如果cookie存在,代码应该处理该情况。我知道,我在问题中链接了cookie。我现在要问的是,在进入我的页面时,它会将我带到这里,但返回时,我好像一开始就没有进入我的页面。[单击此处尝试](admin.rafflebananza.com/newadmin.html)@timmall您必须设置
用户名
cookie。请查看我的更新代码。当您返回时,if块将运行,并且不会重定向到此处。