jQuery Cookie путь - PullRequest
       3

jQuery Cookie путь

32 голосов
/ 17 февраля 2012

Я использую плагин cookie jQuery для хранения файлов cookie, используя следующий код: я могу сохранить cookie в течение 7 дней, но он сохраняет его только для страницы, на которой он создан.Я хочу, чтобы файл cookie был доступен для всего веб-сайта.

$.cookie('basket',basket,{ expires: 7 });

Я пытался указать путь, но это не помогло

$.cookie('basket',basket,{ expires: 7, path:'/' });

полный код: это работаетхорошо, но сохраняет только файл cookie для текущей страницы

function add_to_basket(id,title){
if($.cookie('basket')){
    basket=$.cookie('basket');

    var basket_array = basket.split(',');

    var index = jQuery.inArray(id,basket_array);
    if(index > -1){
        return false;
    }else{
        basket+=','+id;
        $.cookie('basket',basket,{ expires: 7 });
    }
}else{

    basket=id;
    console.log(basket);
    $.cookie('basket',basket,{ expires: 7 });

}

Ответы [ 4 ]

50 голосов
/ 18 февраля 2012

У меня просто была такая же проблема.Я исправил это с помощью всегда , указав путь при записи куки.

$.cookie('basket', value, { path: '/' })

Это проблема с плагином jquery cookie.По умолчанию будет указан путь к текущей странице.

14 голосов
/ 18 марта 2013

В файле плагина изменить:

config.defaults = {};

на

config.defaults = {path:'/'};

от https://github.com/carhartl/jquery-cookie/issues/2#issuecomment-790288

1 голос
/ 23 января 2018

Я не думаю, что исправление тела плагина - хорошая идея. К сожалению, плагин не настраивается .. Я использую функцию оболочки:

$.cookie2 = function(key, value, options)
{
    if (typeof value!='undefined')
    { // setting cookie
        var defaults = {expires: 180, path:'/'};
        $.extend(defaults, options || {});
        return $.cookie(key, value, defaults);
    }
    // getting cookie
    return $.cookie(key, value, options);
}

Использование:

// set with defaults defined in wrapper
$.cookie2('name', 'value');

// rewrite defaults or add something
$.cookie2('name', 'value', {expires: 1, something: 'else'}); 
1 голос
/ 06 октября 2015

У меня была такая же проблема, но я обнаружил, что это происходит, только когда я минимизирую jquery.cookie.js и когда я вставляю

config.defaults = {expires: 180, path:'/', domain: '.domain.com' };

устанавливает путь к cookie для '/', независимо от того, какая внутренняя страница загружена, например, yourdomain.com/en/page1/page - путь к cookie = '/'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...