我正在使用这个jquery.cookie插件,我需要将值设置为 TRUE 或 NULL/FALSE。
我正在尝试这样做:$.cookie('ff', true, { expires: 30, path: '/' });
但它将值设置为字符串而不是布尔值。
有什么方法可以解决这个问题?
我正在使用这个jquery.cookie插件,我需要将值设置为 TRUE 或 NULL/FALSE。
我正在尝试这样做:$.cookie('ff', true, { expires: 30, path: '/' });
但它将值设置为字符串而不是布尔值。
有什么方法可以解决这个问题?
Cookie 只是字符串值。正如gdoron 评论的那样,如果您想将该值视为布尔值,则需要在读取 cookie 值时将其解析回布尔值。
由于您评论说您正在使用 PHP 读取 cookie 值,请参阅Parsing a string into a boolean value in PHP。
客户端:
$.cookie('ff', "true", { expires: 30, path: '/' });
服务器端:
$cookie = $this->input->cookie() == "true";
编辑:饼干是字符串。存储到 cookie 中的任何内容都需要转换为字符串。因此,您必须在其读取端进行字符串到布尔转换。上面我举了一个 PHP (CodeIgniter) 的例子。
如果您只是想将 cookie 用作一种标志,那么只需检查 cookie 是否存在,如果不存在,您可以假设它是错误的:
const isSet = Boolean(cookie.get('my-cookie')) || false
这样,您甚至不必担心 cookie 的实际值以及它是否存在。
另一种方法是
var mycookie = !($.cookie("cookiename")=='false')
或者:
if(!($.cookie("cookiename")=='false')){
//mycode
}
如果值为 'false',则($.cookie("cookiename")=='false')将返回 true,因此我们使用! 返回 false
如果该值不是'false',那么它将返回false,因此我们使用!返回 false