jquery cookie将值设置为布尔值true

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

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

有什么办法解决这个问题?

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

由于您评论您正在使用PHP读取cookie值,请参阅在PHP中将字符串解析为布尔值 。

客户端:

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

服务器端:

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

编辑:cookies是字符串。 存储到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