【javascript】javascriptでクッキーをhttp://www.hogehoge.co.jp/page1.html(通常ページ)で書き込み、https://sub.hogehoge/page2.html(SSLのサブドメインページ)で読み出す記述を教えてください。解決してくださった方に500ポイント差し上げます。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2010/05/13 10:37:00
  • 終了:2010/05/19 10:01:57

ベストアンサー

id:mj99 No.2

mj99回答回数138ベストアンサー獲得回数382010/05/13 18:00:07

ポイント500pt

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'))">
id:capsuleq

丁寧なスクリプトをありがとうございました。

無事希望通りに動作させることができました。

2010/05/19 10:01:30

その他の回答(1件)

id:edWard No.1

edWard回答回数85ベストアンサー獲得回数72010/05/13 10:57:47

ポイント35pt

書き込む方

<script type="text/javascript">
document.cookie = 'hogehoge';
</script>

読み出す方

<script type="text/javascript">
alert(document.cookie);
</script>

このサンプルはセキュアCookieには対応していません。

id:mj99 No.2

mj99回答回数138ベストアンサー獲得回数382010/05/13 18:00:07ここでベストアンサー

ポイント500pt

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'))">
id:capsuleq

丁寧なスクリプトをありがとうございました。

無事希望通りに動作させることができました。

2010/05/19 10:01:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません