javascriptでクッキーを書き込むとき、ドメイン、パス、有効期間を適切に設定することでクッキーを共有できます。
下記例では、
hogehoge.co.jpのサブドメイン全部
ルート以下のパス全部
有効期間は3日
としてクッキーを共有します。
このサンプルはHTTP/HTTPSのサブドメイン間で試験して意図したとおり動作しました
----
http://www.hogehoge.co.jp/page1.htmlを下記のように記述します
ボタンが2つあるページが表示され、ボタンクリックでクッキーが保存されます
<script type="text/javascript"> <!-- function setCookie(name, value, domain, path, expireDays) { str = escape(name) + "=" + escape(value); if (domain != "") str += "; domain=" + domain; if (path != "") str += "; path=" + path; if (expireDays != "") { expires = new Date((new Date()).getTime() + (60 * 60 * 24 * 1000 * expireDays)); str += "; expires=" + expires.toGMTString(); } document.cookie = str; } // --> </script> <input type="button" value="test1-set" onclick="setCookie('test-name1','fooooooo','.hogehoge.co.jp','/','3')"> <input type="button" value="test2-set" onclick="setCookie('test-name2','hogeeeee','.hogehoge.co.jp','/','3')">
https://sub..hogehoge.co.jp/page2.htmlを下記のように記述します
ボタンが2つあるページが表示され、ボタンクリックでクッキーが表示されます
<script type="text/javascript"> <!-- function getCookie(name) { cookies = document.cookie.split("; "); for (i = 0; i < cookies.length; i++) { str = cookies[i].split("="); if (unescape(str[0]) != name) continue; return unescape(str[1]); } return; // undefined } // --> </script> <input type="button" value="test1-get" onclick="alert(getCookie('test-name1'))"> <input type="button" value="test2-get" onclick="alert(getCookie('test-name2'))">
<script type="text/javascript"> document.cookie = 'hogehoge'; </script>
<script type="text/javascript"> alert(document.cookie); </script>
このサンプルはセキュアCookieには対応していません。