javascript - CakePHP Cookie 无法从 JavaScript 读取

标签 javascript cakephp cookies

我正在使用 /cake/contoller_name/method/parameter this page 中的 setcookie() 在 CakePHP 中创建一个 cookie。但是我无法从 JavaScript 读取这个 cookie。但是,当上述 cookie 从 /cake/contoller_name/method this page 设置时,我可以从 JavaScript 读取这个 cookie。

所以我意识到我们不能使用参数从页面设置和更改 cookie。在 Cake 中的服务器端,我们可以读取这些 cookie,但不能从 JavaScript 读取。注意:参数以“蛋糕式”方式传递,而不是通过常规查询字符串传递;例如:/cake/controller/param1/param2。 示例代码

案例 1: 网址:/cake/payroll/salary 页面:payroll_controller.php

function salary(){ 
    setcookie('TEST_COOKIE','TEST_DATA',0); 
}

案例 2: 网址:/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?

最佳答案

您必须遵循 3 个步骤:

  1. 使用 CakePHP Cookie 组件。让框架完成艰巨的任务:http://book.cakephp.org/2.0/en/core-libraries/components/cookie.html

  2. 阅读这篇关于 JavaScript 和 cookie 的文章。您还可以在这里找到 3 个用于删除/创建/读取 cookie 的函数:http://www.quirksmode.org/js/cookies.html

  3. 如果您使用 Firefox,请安装 Firebug 并使用 FireCookie 扩展:http://www.softwareishard.com/blog/firecookie/

最新的 Firebug 已经安装了 FireCookie。

在 FireCookie 中,您可以检查 cookie 是否真的存在并查看它们的名称和值。

关于javascript - CakePHP Cookie 无法从 JavaScript 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455518/

相关文章:

javascript - AngularJS:访问存储在 jQuery cookie 中的 json 数据

javascript - 数组对象数组问题

javascript - 检测点击外部元素(vanilla JavaScript)

Cakephp 3.0 表单元素单选按钮选中问题

forms - CakePHP 3 - patchEntities() 的表单数据格式

angular - .NET Core Identity 不刷新静态文件的 auth cookie 并抛出 500 错误

javascript - onclick后如何在动态div行下方插入一个div

javascript - Php 运行 nodejs javascript grunt 任务

cakephp - tcpdf - 背景图像 - CakePdf

swift - 在 WKWebView 中禁用 cookie