如果cookie为null,则重定向

时间:2015-01-25 03:46:47

标签: javascript cookies

所以我现在正在学习cookie,并从page on w3schools.com获得我的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()">

1 个答案:

答案 0 :(得分:1)

为什么要检查user!="" && user!= null区块中的else?当代码进入此块时,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");
    }
}