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

Javascript firefox中的本地存储密钥验证失败,javascript,html,local-storage,Javascript,Html,Local Storage,我试图根据本地存储中存在的特定密钥生成html内容。代码如下: // Check if the user is signed in or not if(localStorage.getItem("token") === null) { document.getElementById("main").innerHTML = document.getElementById("welcomeview").innerHTML; } else { d

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

    // 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;
    }
即使本地存储中未设置令牌密钥,也始终显示纵断面图:

localStorage
Storage { token: "undefined", length: 1 }
为什么?

编辑:

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

function sign_in() {

        var uri, method, formId, $form, form_data;

        uri = location.protocol + '//' + location.host + "/sign_in";
        method = "POST";
        formId = "#signin_form_id";

        $form = $(formId);
        form_data = get_form_data($form);

        // Set-up ajax call
        var request = {
            url: uri,
            type: method,
            contentType: "application/json",
            accepts: "application/json",
            cache: false,
            dataType: 'json',
            data: form_data
        };
        // Make the request
        $.ajax(request).done(function(data) { // Handle the response
            // Attributes are retrieved as object.attribute_name
            // alert(obj.count);
            if(data.successSignIn === false) {
                // Login failed we show the welcome page
                alert(data.message);
                document.getElementById("main").innerHTML = document.getElementById("welcomeview").innerHTML;
            } else {
                // Login succeeded. We load the user's info, his messages and also a form in which he can type messages
                // Save the token received from the server. Could also be stored as a cookie
                localStorage.setItem('token', data.token);
                // Go to the home page
                go_home();
            }
        }).fail(function(jqXHR, textStatus, errorThrown) {
                    console.log(JSON.stringify(jqXHR));
                    console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
                }
        );
        location.reload();

}

已编辑:对设置项
localStorage.setItem(“token”,typeof undefined==data.token?undefined:data.token)尝试此操作。
。避免使用字符串
“未定义”

我建议:

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 

如果
“undefined”==null
始终为false,则永远不会进入
部分


在您的情况下,您需要检查
if(localStorage.getItem(“token”)==“undefined”)

令牌键已设置并且是字符串
“undefined”
只需替换
if(localStorage.getItem(“token”){…}
您也可以尝试if(localStorage中的“token”){…}如何添加/删除密钥?删除密钥的正确方法localStorage.removeItem(密钥);