9

我正在使用这个jquery.cookie插件,我需要将值设置为 TRUE 或 NULL/FALSE。

我正在尝试这样做:$.cookie('ff', true, { expires: 30, path: '/' });但它将值设置为字符串而不是布尔值。

有什么方法可以解决这个问题?

4

4 回答 4

16

Cookie 只是字符串值。正如gdoron 评论的那样,如果您想将该值视为布尔值,则需要在读取 cookie 值时将其解析回布尔值。

由于您评论说您正在使用 PHP 读取 cookie 值,请参阅Parsing a string into a boolean value in PHP

于 2012-03-17T18:09:16.267 回答
6

客户端:

$.cookie('ff', "true", { expires: 30, path: '/' });

服务器端:

$cookie = $this->input->cookie() == "true";

编辑:饼干是字符串。存储到 cookie 中的任何内容都需要转换为字符串。因此,您必须在其读取端进行字符串到布尔转换。上面我举了一个 PHP (CodeIgniter) 的例子。

于 2012-03-17T18:11:04.443 回答
1

如果您只是想将 cookie 用作一种标志,那么只需检查 cookie 是否存在,如果不存在,您可以假设它是错误的:

const isSet = Boolean(cookie.get('my-cookie')) || false

这样,您甚至不必担心 cookie 的实际值以及它是否存在。

于 2018-02-14T18:52:58.103 回答
0

另一种方法是

var mycookie = !($.cookie("cookiename")=='false')

或者:

if(!($.cookie("cookiename")=='false')){ 
    //mycode 
}

如果值为 'false',则($.cookie("cookiename")=='false')将返回 true,因此我们使用! 返回 false

如果该值不是'false',那么它将返回false,因此我们使用返回 false

于 2018-03-09T02:02:48.370 回答