2010-08-17 42 views
2

我正在使用JavaScript處理cookie以在我的asp.net web應用程序中存儲一些值。 我使用document.cookie來保存一些值(轉換成一個很長的字符串)。但是我希望可以在我的應用程序的所有頁面中訪問該值。Cookie是否使用特定於文檔的document.cookie存儲?

當我嘗試從不同的頁面獲取該值時,我得到與當前URL中的文檔有關的值。

總之我保存http://myapp/doc1.aspx cookie中的價值,並希望取回在http://myapp/doc2.aspx

所以document.cookie中是屬於一個單一的文件範圍是什麼?我如何在網站上保存/讀取cookies?

更新

這是我如何獲取和設置cookies

function getCookie(c_name) 
{ 
try{ 
    if (document.cookie.length>0) 
    { 
    c_start=document.cookie.indexOf(c_name + "="); 
    if (c_start!=-1) 
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start); 
    if (c_end==-1) c_end=document.cookie.length; 
    return unescape(document.cookie.substring(c_start,c_end)); 
    } 
    } 
    } 
    catch(e) 
    {} 
return ""; 
} 

function setCookie (name, value, exp_d) 
{ 
    var cookie_string = name + "=" + escape (value); 

    if (exp_d) 
    { 
    var exdate=new Date(); 
    var expires = new Date (exdate.getYear(), exdate.getMonth(), exdate.getDay()+exp_d); 
    cookie_string += "; expires=" + expires.toGMTString(); 
    } 

    document.cookie = cookie_string; 
} 

但我在不同的頁面餅乾得到不同的值。有任何想法嗎?

謝謝。

+0

我沒有看到這裏有什麼問題需要解決。你有沒有嘗試過創建一個JavaScript的快捷方式:警告(文檔。cookie)在不同的點檢查它,並設置螢火蟲或類似的斷點,以確保在設置之前不寫入它? – 2010-08-17 12:46:16

+0

是的,我正在做你剛剛說的話。 – NLV 2010-08-17 12:53:28

回答

1

Cookie適用於整個域名。使用您發佈的代碼創建的Cookie將可用於託管在您的域名上的任何頁面。

+0

...除非他們沒有。 – 2010-08-17 12:41:19

+0

非常好,是的。 – Sam152 2010-08-17 12:42:14

+0

我已更新我的帖子。請檢查出來。 – NLV 2010-08-17 12:42:28

3

Cookie有一個域和一個路徑。默認情況下,該域將成爲其設置的域,路徑將爲根路徑,但這些可以如下覆蓋:

http://www.example.net/foo/bar/baz的資源設置cookie(無論是來自服務器端還是客戶端JavaScript的)。

默認情況下,它的域名爲www.example.net,其路徑爲/,所以對於URI匹配的所有資源可見://www.example.net/其中*是一個簡單的通配符。

它的域可以設置爲example.net,但不能設置爲example.org - 它只能設置爲一個域,它是一個子域。 (有特殊的和不完善的規則來阻止你爲像.net這樣的tld設置cookie)

它的路徑可以設置爲/ foo/bar/baz或者/ foo/bar甚至是/ foo/ba它與簡單的子串匹配進行比較。如果設置爲例如/ foo/bar /然後它將在http://www.example.net/foo/bar/qux處對資源可見,但在http://www.example.net/foo/quux/corge處沒有一個可見

還有安全特性,它將cookie限制爲HTTPS協議。


編輯:見http://www.quirksmode.org/js/cookies.html關於如何實際設置這些屬性的詳細信息。

+0

路徑不會默認爲''/'',但對大多數人來說這是一個很好的默認值。默認情況下它將是當前文檔路徑。 https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie – Duane 2016-01-28 17:49:51

2

這個問題可以用下面的語法

use ";path=/;"幫助在最後同時節省了餅乾如下圖所示

document.cookie = c_name + "=" + oldInfo + ";path=/"; 
相關問題