2013-08-03 23 views
1

我从服务器端获取json对象。但我一直无法将它保存在LocalStorage中! 这是它的外观在Firebug:如果你不能看到的图片清楚地尝试在一个单独的页面打开它们提前(右键点击打开新选项卡上)Java脚本从服务器(asp.net)获取数据并将其保存在本地存储(客户端)

谢谢! Response Tab"

Json Tab

这是如何我使用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> 

结果写任何东西想看起来像这样当我保存在数据localstorage(HTML5)但它没有发生: LocalStrage

回答

2

您正试图将对象丢入localStorage更改

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); 
+0

谢谢!它运行良好,但我还需要删除'validatResult(prj)'。 – Poorya

相关问题