1

我从服务器端获取一个 json 对象。但我无法将其保存在 LocalStorage 中!这是它在 FireBug 中的外观:如果您看不清图片,请尝试在单独的页面中打开它们(右键单击并单击在新选项卡上打开)

提前致谢 ! 响应选项卡

Json 选项卡

这就是我使用 Ajax 获取数据的方式,但它没有在本地存储中写入任何内容

$.ajax(
       {
           type: "POST",
           url: "Default.aspx/loadGantt",
           contentType: "application/json; charset=utf-8",
           //data: "{taskId:" +taskId+ "}",
           data: "{}",
           dataType: "json",
           contentType: "application/json; charset=utf-8",

           success: function (response) {
               //console.debug(response);
                   var prj = response.d;
                   validatResult(prj)
                   if (localStorage) {
                       localStorage.setObject("teamworkGantDemo", prj);
                   } else {
                       $("#ta").val(JSON.stringify(prj));
                   }
                   //prj = response;
                   //validateResult(prj);

                   if (typeof (callback) == "function") {
                       callback(response);
                   }
                else {
                   jsonErrorHandling(response);
               }
           }
       });

</script>

当我将数据保存在本地存储(HTML5)中时,结果假设看起来像这样,但它没有发生: 本地策略

4

1 回答 1

3

您正试图将一个对象放入localStorageChange中

 localStorage.setObject("teamworkGantDemo", prj);

 localStorage.setItem("teamworkGantDemo", JSON.stringify(prj));

或者干脆

localStorage["teamworkGantDemo"] =  JSON.stringify(prj)

但是如果你坚持使用包装器,你可以这样做:

Storage.prototype.setObject = function(key, value) {
    this.setItem(key, JSON.stringify(value));
}

Storage.prototype.getObject = function(key) {
   return JSON.parse(this.getItem(key));
}

然后以这种方式使用它:

 localStorage.setObject("teamworkGantDemo", prj);
于 2013-08-03T05:23:40.780 回答