Почему если в $.cookie 10 строк — кука очищается?

Доброго времени суток!
Возникла какая-то странная проблема.

Через jquery-cookie реализована простая корзина.
Все работает корректно, кроме одного момента, как только в корзину добавляется 10 элемент - кука полностью очищается.
Никаких ошибок в консоли нет.
В куку корзины добавляется объект в формате:
productId:
    name : 'Название товара',
    qty : 'Количество товара',
    cost : 'Цена товара'


Если увеличивать количество товара в строке объекта - все ок.
Но если увеличить сам объект - до 10 строк, он удаляется.

В коде, есть только одна строка, которая удаляет куку:
Если товар добавляется в корзину, значение куки присваивается переменной и кука удаляется, затем формируется новый объект (с добавлением нового товара) и создается новая кука.
addToCartButton.on('click', function (e) {
    e.preventDefault();

    let cart = {};

    if ($.cookie('cart')) {
        cart = $.cookie('cart');
        $.removeCookie('cart', {expires: 365, path: '/', domain: 'www.domain.ru', secure: true});
    }

    cart[productId] = {
        'name' : 'Название товара',
        'qty' : 'Количество товара',
        'cost' : 'Цена товара'
    };

    $.cookie('cart', cart, {expires: 365, path: '/', domain: 'www.domain.ru', secure: true});
});


Заранее спасибо за помощь!
  • Вопрос задан
  • 133 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Скорее всего, вы упираетесь в лимит размера куки.
В большинстве браузеров размер одной куки не может быть больше 4Kb.
browsercookielimits.iain.guru
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
В куках нельзя хранить больше 4 Кб информации. Для хранения товаров используйте localStorage, там лимит 4 Мб, что в 1000 раз больше, чем у Cookie.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы