我正在使用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
。示例代码
案例一: 网址:/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'));
我可以使用 JS 读取案例 1 中的 cookie,但不能读取案例 2 中的 cookie。如何在 CakePHP 的任何页面上设置 cookie 并从 JavaScript 读取这些 cookie?