Javascript 存储在localStorage中时未检索全局对象

Javascript 存储在localStorage中时未检索全局对象,javascript,local-storage,Javascript,Local Storage,我试图在第1页的localStorage中存储一个全局对象,该对象运行大约4秒,然后将我重定向到一个新页面,例如:第2页 对于将page1中的全局对象存储到localStorage,我使用: 第1页--xyz.site.com/myCode.html window.my_global_object = { property1: "abc", property2: "pqr" } window.localStorage["my_storage_vals"] = my_global_object;

我试图在第1页的localStorage中存储一个全局对象,该对象运行大约4秒,然后将我重定向到一个新页面,例如:第2页

对于将page1中的全局对象存储到localStorage,我使用:

第1页--xyz.site.com/myCode.html

window.my_global_object = {
property1: "abc",
property2: "pqr"
}

window.localStorage["my_storage_vals"] = my_global_object;
第2页:mylocal/Page2.html

var retrievedObject = window.localStorage["my_storage_vals"];
                            alert(retrievedObject);
但我仍然无法看到我的对象被存储。它还没有定义。我想在第2页维护我的globalObject的状态。不在第3页或第4页等。我只想保存第2页上的值

使用json.stringify

var val = JSON.stringify(my_global_object);
            localStorage.setItem("myVal",val);

var retrievedObject = localStorage.getItem("myVal");
                            alert(retrievedObject);

您说过您的页面是:

  • xyz.site.com/myCode.html
  • mylocal/page2.html
  • localStorage
    对象绑定到本地域,因此
    xyz.site.com
    localStorage
    mylocal
    完全不同。因此,如果您在第一页中设置了一个属性,然后重定向到另一个站点,
    localStorage
    将不再相同,您将无法访问您的属性

    要解决此问题,您应该:

    • 将两个页面放在同一个域上
    • 或者调用第二个页面,在url中传递一些查询字符串
    • 或者从第二页到第一页执行
      XMLHttpRequest

    localStorage将所有内容存储为字符串,在放入localStorage时需要JSON.stringify,在检索时需要JSON.parse是的,我也尝试过。但我不认为它应该像帕特里克文斯所说的那样起作用。@DontVoteMeDown实际上这是不对的。即使不使用JSON.parse/JSON.stringify方法,也应该能够读取本地存储中存储为字符串的对象。OP表示检索到的对象未定义,因此这意味着存在另一种问题。@appleris您确定您的page2处于同一协议和域下吗?这两页的地址是什么?请把它包括在你的问题中。