Почему fullcalendar не удается проанализировать JSON? - PullRequest
1 голос
/ 16 апреля 2019

Резюме

У меня настроен полный календарь, и я пытаюсь показать в нем данные, используя источник событий JSON, как описано в их документации здесь .

Я получаю следующее сообщение об ошибке Failure parsing JSON.

Вещи, которые я пробовал

Это JSON, который вызовет сообщение об ошибке [{"title":"Lorem Ipsum","start":"2019-04-01","end":"2019-04-02"},{"title":"The Test","start":"2018-09-01","end":"2018-09-02"}]

Я использую полную версию календаря 4.0.2.
Я проверил json, что мой PHP-код возвращается в linter.
Я добавил заголовок Content-Type: application/json в ответ json.
Я попытался с помощью хука eventDataTransform вернуть некоторый пример JSON, найденный в документах fullcalendar здесь (см. Код в истории изменений)

~~ Странно то, что когда я помещаю вышеупомянутый JSON непосредственно в мой javascript в опции events, он работает. ~~ РЕДАКТИРОВАТЬ: Как указали Jaromanda X и Quentin, это массив javascript, а не JSON .

код

    var calendar = new FullCalendar.Calendar(calendarEl, {
        plugins: [ 'dayGrid' ],
        defaultView: 'dayGridMonth',
        locale: 'nl',
        events: '/fullcalendar/json.php'
    });

Я ожидаю, что мой json может быть проанализирован, так как ответ такой же, как и то, что я даю напрямую events опции

Дополнительная информация

Содержимое файла json.php

<?php
header('Content-Type: application/json');
echo json_encode([
    [
        'title' => 'Lorem Ipsum',
        'start' =>  '2019-04-01',
        'end' =>  '2018-04-02'
    ],
    [
        'title' => 'The Test',
        'start' =>  '2018-09-01',
        'end' =>  '2018-09-02'
    ]
]);exit;

Я попытался изменить метод на GET, который не помог.

Я приложил снимок экрана с ответом, который я вижу на вкладке «Сеть» инспектора. Ответ JSON в Инспекторе

.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Боюсь, что мое решение, вероятно, не будет полезным для кого-то еще, но вот оно.

Ошибка была вызвана следующей строкой кода js в нашем основном файле js.

  if($('table').length > 0){
         $('table').wrap('<div class="table-scroll"></div>');
    }

Эта строка перепутана с выводом HTML, который генерирует fullcalender, который затем выдал ошибку failure parsing json.

0 голосов
/ 16 апреля 2019

Я попробовал ваш код на странице php и позвонил в fullcalendar как events: '/fullcalendar/json.php' Я не знаю, что вызывает проблемы для вас. Работает отлично.

<?php
 header('Content-Type: application/json');
 echo json_encode([
   [
    'title' => 'Lorem Ipsum',
    'start' =>  '2019-04-16T13:00:00',
    'end' =>  '2019-04-17T14:00:00'
   ],
   [
    'title' => 'The Test',
    'start' =>  '2019-04-16T10:00:00',
    'end' =>  '2019-04-17T13:00:00'
   ]
]);

Однако учтите и ваши даты. Ваш старт 2019 и конец 2018. Также укажите время, чтобы увидеть, где ваши события.

...