Не могу записать в куки данные. Битркс

Есть скрип, добавляющий в избранное товары. Работает если юзер авторизован, то пишем ему в БД, если нет, не авторизован, то пишем в куки.

Отправляю данные в обработчик:

<script>
        $(document).ready(function () {
            /* Favorites */
            $('.favorites').on('click', function (e) {
                var favorID = $(this).attr('data-item');
                if ($(this).hasClass('active'))
                    var doAction = 'delete';
                else
                    var doAction = 'add';

                addFavorite(favorID, doAction);
            });
            /* Favorites */
        });

        /* Избранное */
        function addFavorite(id, action) {
            var param = 'id=' + id + "&action=" + action;
            $.ajax({
                url: '/local/ajax/favorites.php', // URL отправки запроса
                type: "GET",
                dataType: "json",
                data: param,
                success: function (response) { // Если Данные отправлены успешно
                    console.log("responsee");
                    console.log(response);
                    var result = $.parseJSON(response);
                    if (result === 1) { // Если всё чётко, то выполняем действия, которые показывают, что данные отправлены :)
                        $('.favorites[data-item="' + id + '"]').addClass('active');
                        var wishCount = parseInt($('#want .col').html()) + 1;
                        $('#want .col').html(wishCount); // Визуально меняем количество у иконки
                    }
                    if (result === 2) {
                        $('.favorites[data-item="' + id + '"]').removeClass('active');
                        var wishCount = parseInt($('#want .col').html()) - 1;
                        $('#want .col').html(wishCount); // Визуально меняем количество у иконки
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) { // Если ошибка, то выкладываем печаль в консоль
                    console.log('Error: ' + errorThrown);
                }
            });
        }

        /* Избранное */
    </script>

Потом принимаю отправленное:

 <? require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");

$GLOBALS['APPLICATION']->RestartBuffer();
use Bitrix\Main\Application;
use Bitrix\Main\Web\Cookie;
$application = Application::getInstance();
$context = $application->getContext();
/* Избранное */
global $APPLICATION;
/* Избранное */
if ($_GET['id']) {
    if (!$USER->IsAuthorized()) // Для неавторизованного
    {
        $arElements = unserialize($APPLICATION->get_cookie('favorites'));
        if (!in_array($_GET['id'], $arElements)) {
            $arElements[] = $_GET['id'];
            $result = 1; // Датчик. Добавляем
        } else {
            $key = array_search($_GET['id'], $arElements); // Находим элемент, который нужно удалить из избранного
            unset($arElements[$key]);
            $result = 2; // Датчик. Удаляем
        }
        $cookie = new Cookie("favorites", serialize($arElements), time() + 60 * 60 * 24 * 60);
        $cookie->setDomain($context->getServer()->getHttpHost());
        $cookie->setHttpOnly(false);
        $context->getResponse()->addCookie($cookie);
        $context->getResponse()->flush("");

    } else { // Для авторизованного
        $idUser = $USER->GetID();
        $rsUser = CUser::GetByID($idUser);
        $arUser = $rsUser->Fetch();
        $arElements = $arUser['UF_FAVORITES'];  // Достаём избранное пользователя
        if (!in_array($_GET['id'], $arElements)) // Если еще нету этой позиции в избранном
        {
            $arElements[] = $_GET['id'];
            $result = 1;
        } else {
            $key = array_search($_GET['id'], $arElements); // Находим элемент, который нужно удалить из избранного
            unset($arElements[$key]);
            $result = 2;
        }
        $USER->Update($idUser, array("UF_FAVORITES" => $arElements)); // Добавляем элемент в избранное
    }
}
/* Избранное */
echo json_encode($result);
die(); ?>
<? require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php"); ?>

Работает если авторизован, все ок. Если не авторизован то не пишет. Ковыряюсь и добился того что выводит (index):70 Error: SyntaxError: Unexpected end of JSON input но где что править не пойму


Ответы (1 шт):

Автор решения: Сергей Савченко

У вас ajax запрос ожидает json dataType: "json"

а в ответ приходит число echo json_encode(1); => 1

сделайте

echo json_encode(["result"=>$result]);
→ Ссылка