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

问题描述:

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

// 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(); 

} 
+0

令牌密钥被设置,并且是一个字符串'“undefined”' – lshettyl

+2

只需要替换'if(localStorage.getItem(“token”)){...}' –

+0

@Sherali Turdiyev谢谢我解开了关键的价值和思想钥匙也将被删除 – Sebi

被修改:尝试此设定项目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 

做你的榜样你永远不会进入if部分为"undefined" === null总是假的。

你想检查你的情况下if(localStorage.getItem("token") === "undefined")