Javascript检查cookie值

时间:2017-10-19 20:18:41

标签: javascript cookies

我有一个临时登录脚本,用于检查密码,分配cookie,然后将用户重定向到新页面。在控制台页面上,我有代码检查cookie是否设置为true。如果是,则删除它并继续。如果不是,则会将用户重定向回主页。我得到了所有代码,但它不起作用!以下是一些更重要的信息:

  • 该Cookie名为login
  • 已登录的Cookie设置为true
  • Cookie设置正确,这是控制台页面代码的问题。 这是我的代码:



function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
        var end = document.cookie.indexOf(";", begin);
        if (end == -1) {
        end = dc.length;
        }
    }
    // because unescape has been deprecated, replaced with decodeURI
    //return unescape(dc.substring(begin + prefix.length, end));
    return decodeURI(dc.substring(begin + prefix.length, end));
} 

function doSomething() {
    var myCookie = getCookie("login");

    if (myCookie == true) {
alert("Logged in for one session!");
        document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";       

    }
    else {
alert("Login Failed. Redirecting...");
window.location.assign("https://www.code-u.org/")
    }
}




1 个答案:

答案 0 :(得分:0)

已经两年来不能为您提供帮助,但这是因为广泛复制粘贴的getCookie中存在错误。

也就是说,如果cookie集是document.cookies中的第一个cookie,它将不起作用,因为当采用分支if (begin == -1)时,永远不会设置end

解决方案是将getCookie替换为另一个实现。