以下是在用戶計算機上寫入12個月的JavaScript Cookie。在域上創建JavaScript Cookie並通過子域讀取它
當我們在我們的主域如example.com
上設置了cookie後,如果用戶訪問像test.example.com
這樣的子域,我們需要繼續在我們的「測試」子域中標識用戶的活動。
但是對於當前的代碼,只要他們離開www.example.com
並訪問test.example.com
,它們不再被標記爲「HelloWorld」。
任何人都可以幫助我的代碼,以允許cookie跨子域讀取?
<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate;
</script>
我試圖在localhost中執行此操作,但我無法更改路徑 – Enve 2013-01-15 10:01:57
@Enve - 瀏覽器將localhost cookie與其他cookie有所不同。或者說,他們以一種使_localhost_工作變得困難的方式來對待所有的cookie。例如,請參閱http://stackoverflow.com/questions/1134290/cookies-on-localhost-with-explicit-domain。我建議編輯你的'hosts'文件並將別名'myserver.local'別名到'127.0.0.1'。然後你可以使用它來訪問你的本地服務器(以及設置cookie的時候),並且希望所有的東西都能正常工作。 – aroth 2013-01-16 00:32:09
您創建和檢索的所有Cookie值都必須是字符串值。字符串可能包含字符,當試圖檢索它們時可能會擾亂本地存儲。我建議的一件事情是使用全局的'encodeURI()'&'decodeURI()'方法來處理任何需要進行的轉換。即'document.cookie = encodeURI(cookieName)+「=」+ encodeURI(cookieValue)'。 – 2013-09-24 19:34:45