当我重定向时,存储在localStorage中的数据不存在

时间:2014-09-08 06:28:04

标签: javascript local-storage

我在设置localStorage数据的页面上有Javascript: localStorage.setItem('blah', 1);

然后,我的代码会在按钮点击时重定向到另一个页面。

在另一个页面上,我尝试访问localStorage中的项目,但是我有30%的时间获得Uncaught TypeError: Cannot read property 'blah' of null。为什么localStorage每次都没有保存?

我错过了什么吗?

在当前页面

localStorage.setItem('blah', 1);
$('.btn').on('click', function() { window.location.href = 'http://example.com/signup?redirect=/chkout'; });

在重定向页面

localStorage.getItem('blah', 1); ==> null

2 个答案:

答案 0 :(得分:0)

localStorage数据应该由多个文档保留。可能存在某些其他操作覆盖localStorage数据的情况。您可以尝试通过添加以下eventListener来调试它:

window.addEventListener("storage", function(data) {
   console.debug(data);
}, false);

每次访问存储时都应记录数据。

答案 1 :(得分:0)

这可能是因为

  1. 标签/窗口处于隐身/私密冲浪模式
  2. 浏览器配置为根本不跟踪历史记录
  3. 该项目是在另一个端口或方案(同一域名)上设置的(例如http://foo.com而不是https://foo.com
  4. From the W3C specification

      
        
    1. 如果请求违反了策略决策(例如,如果用户代理配置为不允许页面持久保存数据),则用户代理可能会抛出SecurityError异常并中止这些步骤而不是返回Storage对象。 / p>

    2.   
    3. 如果Document的origin不是scheme / host / port元组,则抛出SecurityError异常并中止这些步骤。

    4.