Firefox中的本地存储密钥验证失败

时间:2015-10-04 18:25:23

标签: javascript html5 local-storage

我尝试根据本地存储中特定密钥的存在来生成html内容。代码如下:

dl

即使本地存储中没有设置令牌密钥,也始终显示配置文件视图:

    // Check if the user is signed in or not
    if(localStorage.getItem("token") === null) {
        document.getElementById("main").innerHTML = document.getElementById("welcomeview").innerHTML;
    } else {
        document.getElementById("main").innerHTML = document.getElementById("profileview").innerHTML;
    }

为什么?

修改

使用AJAX请求的响应值设置令牌:

localStorage
Storage { token: "undefined", length: 1 }

2 个答案:

答案 0 :(得分:1)

已编辑:请尝试设置项目localStorage.setItem("token", typeof undefined === data.token ? undefined : data.token)。避免使用字符串"undefined"

我建议:

1)替换为if(localStorage.getItem("token")) {...}

3)另外,你可以通过三元运算符

来做你的例子
var welcomeText = document.getElementById("welcomeview").innerHTML, 
profileText = document.getElementById("profileview").innerHTML;

document.getElementById("main").innerHTML = (localStorage.getItem("token")) ? welcomeText : profileText 

答案 1 :(得分:1)

您永远不会输入if部分,因为"undefined" === null始终为假。

您想在您的案例中检查if(localStorage.getItem("token") === "undefined")