jQuery cookie установить значение boolean true

Я использую этот С помощью jQuery.куки плагин, и мне нужно установить значение TRUE или NULL/FALSE.

Я пытаюсь сделать это так: $.cookie('ff', true, { expires: 30, path: '/' }); но он устанавливает значение string, а не boolean.

любые способы исправить это?

4 ответов


Cookies имеют только строковое значение. As gdoron комментарием, Если вы хотите рассматривать значение как логическое, вам нужно проанализировать его обратно в логическое, когда значение cookie считывается обратно.

поскольку вы прокомментировали, что читаете значение cookie с помощью PHP, см. разбор строки на логическое значение в PHP.


клиентской стороне:

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

сервер:

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

EDIT: Cookies-это строки. Все, что хранится в cookies, должно быть преобразовано в строки. Следовательно, вам нужно сделать преобразование строки в логическое на стороне чтения. Выше я привел пример для PHP (CodeIgniter).


Если вы просто хотите использовать cookie как своего рода флаг, просто проверьте, существует ли cookie, и если это не так, вы можете предположить, что это false:

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