2011-03-07 176 views
0

當致電Response.Cookie.Add(new HttpCookie("MyCookie", "objValue")); cookie保存在哪裏?在客戶機或服務器機器上?ASP.NET Response.Cookie客戶端或服務器?

編輯: 如果保存在客戶端機器,我怎麼能從JavaScript讀取呢?我試過這種腳本。

function getCookie(c_name) { 
    var i, x, y, ARRcookies = document.cookie.split(";"); 
    for (i = 0; i < ARRcookies.length; i++) { 
     x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
     y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
     x = x.replace(/^\s+|\s+$/g, ""); 
     if (x == c_name) { 
      return unescape(y); 
     } 
    } 
} 

我無法獲取我從代碼保存的cookie。當我查看document.cookie對象時,它只是一個空字符串。

場景:

  1. 論代碼Page_Init()的後面。我使用Response.Cookie.Add(new HttpCookie("MyCookie", "cookieValue"));創建了一個cookie。
  2. 在客戶端,我想閱讀使用以上代碼段在頁面加載從代碼保存背後的餅乾,但它返回undefined
+0

爲什麼這很複雜?只需在頁面中放置一個隱藏字段(例如'asp:HiddenField'),填充它的內容並用javascript讀取它。 – tiago2014 2011-03-07 03:51:32

+0

@tiagoinu:我把這種情況作爲例子。我只是想知道如何閱讀從JavaScript後面的代碼創建的保存的Cookie。由於所有的cookie都保存在客戶機中。 – 2011-03-07 03:57:35

+0

對不起我的壞...我可以從JavaScript獲取cookie ..我從代碼後面讀取它後刪除cookie ..謝謝反正.. – 2011-03-07 04:03:35

回答

1

作爲Wikipedia explains,Cookie字符串值存儲在客戶端上。
它們被髮送到服務器與每個HTTP請求作爲Cookie:標頭。

您可以使用session state在服務器中存儲任意對象。

+0

謝謝,但我正在嘗試閱讀使用JavaScript保存的cookie,我無法閱讀它。請參閱我的編輯。 – 2011-03-07 03:46:44

0

餅乾始終保存在客戶機上。

1

客戶端機器。我相信谷歌可以給你一個很好的解釋,但我每天都在使用它,而經驗是我的源泉。

+0

@Rob請注意,HttpCookie構造函數的第二個參數是一個字符串,而不是任何對象。你不能在cookie中保存任意對象。 http://msdn.microsoft.com/en-us/library/system.web.httpcookie.aspx – tiago2014 2011-03-07 03:31:55

+0

@tiagoinu:你說的沒錯。我正在解決這個問題的根源,而不是他的語法,或者他的代碼可能的錯誤/例外 – 2011-03-07 03:34:40

+0

是的,我在對您的回答的評論中提到了它,因爲該信息不適合自己的答案。 – tiago2014 2011-03-07 03:41:10