Как изменить: Fullcalendar генерирует запрос GET

Я реализую полный календарь на своем веб-сайте.

Я создал div с календарем в качестве идентификатора.

Я поместил данные из SQL-запроса в переменную php и использовал кодировку json, чтобы получить правильный формат.

Вот как я создаю календарь:

$html .= "<script src='/wp-content/plugins/biobelt/moment.min.js'></script>
        <script src='/wp-content/plugins/biobelt/fullcalendar.min.js'></script>
        <link rel= 'stylesheet' href='/wp-content/plugins/biobelt/fullcalendar.css' type='text/css'>
        <script>
            jQuery(document).ready(function() {
                var bevents = '".$buildingevents."'
                console.log(bevents)
                jQuery('#calendar').fullCalendar({
                    defaultDate: '" . $_SESSION['statDateFrom'] ."',
                    editable: true,
                    events: bevents,
                });
            });
        </script>";

Журнал консоли дает мне вывод массива, который я передаю событиям, и это правильный формат:

[{"id":"1","titre":"1","start":"2018-04-09 07:00:01","stop":"2018-04-09 11:00:00"},{"id":"2","titre":"1","start":"2018-04-09 07:00:01","stop":"2018-04-09 11:00:00"},{"id":"3","titre":"2","start":"2018-04-09 16:00:01","stop":"2018-04-09 21:00:00"},{"id":"4","titre":"2","start":"2018-04-09 16:00:01","stop":"2018-04-09 21:00:00"}, etc...

Что я получаю от этого: GET 403 Forbidden Error

Я проверил в журналах apache, это связано с тем, что URL-адрес слишком длинный, поскольку каждое поле массива помещается в URL-адрес.
По какой-то причине я не хочу изменять строку запроса ограничения в файле конфигурации apache.
Я хочу сгенерировать запрос POST вместо запроса GET.
И я хотел бы знать, как он генерирует запрос GET, поскольку я нигде не помещал GET в свои файлы.

РЕДАКТИРОВАНИЕ:
согласно: https://fullcalendar.io/docs/events-json-feed Fullcalendar создает запрос на получение и URL-адрес. Проблема сохраняется, поскольку URL-адрес слишком длинный, и вместо этого я хочу создать запрос POST. Как это сделать?


person rn605435    schedule 09.05.2018    source источник


Ответы (1)


Вы, кажется, немного неправильно поняли документацию.

Вы сказали

Журнал консоли дает мне вывод массива, который я передаю событиям, и это правильный формат.

И действительно, то, что вы показали, похоже на массив Javascript. Итак... это статический массив, а не URL. У вас нет какой-либо конечной точки сервера, к которой вы можете сделать отдельный вызов ajax для получения ваших событий. Поэтому статья, на которую вы ссылаетесь (https://fullcalendar.io/docs/events-json-feed) не имеет значения. Вместо этого вы предоставляете статический список событий в соответствии с методом, описанным на странице https://fullcalendar.io/docs/events-array).

За исключением того, что... ты не такой. Из-за того, как вы написали свой код, вы предоставляете строку вместо массива. Это приводит к тому, что fullCalendar предполагает, что вы предоставляете URL-адрес, а затем пытаетесь вызвать этот URL-адрес, и неудивительно, что это приводит к ошибкам.

Если вы просто удалите одинарные кавычки из

var bevents = '".$buildingevents."'

чтобы он стал

var bevents = ".$buildingevents.";

тогда ваш код должен работать нормально, потому что он вставит жестко закодированный массив в JavaScript вместо строки.

person ADyson    schedule 10.05.2018
comment
Большое спасибо ! Отличные объяснения - person rn605435; 11.05.2018