setcookie()
fromを使用して CakePHP で Cookie を作成してい/cake/contoller_name/method/parameter this page
ます。しかし、JavaScript からこの Cookie を読み取ることができませんでした。ただし、上記の Cookie が から設定される/cake/contoller_name/method this page
と、JavaScript からこの Cookie を読み取ることができます。
そのため、パラメーターを使用してページから Cookie を設定および変更できないことに気付きました。サーバー側では、Cake でこれらの Cookie を読み取ることができますが、JavaScript から読み取ることはできません。注: パラメータは、通常のクエリ文字列ではなく、「ケーキ スタイル」で渡されます。例: /cake/controller/param1/param2
. サンプルコード
ケース 1: URL: /cake/payroll/salary ページ: payroll_controller.php
function salary(){
setcookie('TEST_COOKIE','TEST_DATA',0);
}
ケース 2: URL: /cake/payroll/salary/14 ページ: payroll_controller.php
function salary(){
setcookie('TEST_COOKIE','TEST_DATA',0);
}
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);
}
}
}
alert(getCookie('TEST_COOKIE'));
ケース 1 の Cookie は JS で読み取ることができますが、ケース 2 の Cookie は読み取れません。CakePHP から任意のページに Cookie を設定し、JavaScript からそれらの Cookie を読み取るにはどうすればよいですか?