Сессия потеряна после запроса AJAX (Symfony 3)

У меня есть корзина, в которую я добавляю товары через AJAX (выборка). Когда я добавляю товар в корзину и проверяю запрос на панели инструментов отладки, сеанс настроен правильно. Но после перезагрузки страницы сессия пропадает. Это странно, потому что, когда я использую тот же код для добавления товара в корзину, но не через AJAX (с использованием ссылки и перенаправления), все работает нормально. Где могла быть проблема?

public function addItem(int $id, string $type, int $quantity = 1)
{
    $item = new CartItem();
    $item->setId($id);
    $item->setQuantity($quantity);
    $item->setType($type);
    $this->items[] = $item;
    $this->session->set(self::SHOPPING_CART_SESSION_NAME, $this->items);
}


/**
 * @Route("/add-to-cart", name = "add_item_to_cart")
 */
public function addItemToCart(Request $request)
{
    $data = json_decode($request->getContent());

    $type = $data->type;
    $id = intval($data->id);
    $quantity = intval($data->quantity);

    $this->shoppingCartService->addItemToShoppingCart($id, $type, $quantity);
    return new JsonResponse('success', 200);
}


fetch('/add-to-cart', {
    method: 'post',
    body: JSON.stringify({
        type: type,
        id: productId,
        quantity: quantity
    })
}).then((response) => {
    response.json().then(data => {
        console.info(data);
    });
}).catch((error) => {
});

Вы пробовали установить cookie_httponly на false в своей конфигурации? Это делает файл cookie сеанса доступным для javascript, как описано здесь.

Philippe-B- 12.04.2018 22:46

@ Philippe-B: Да, но это не помогло.

kmaci 14.04.2018 08:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
426
0

Другие вопросы по теме