2013-08-03 22 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

相關問題