3

概括

我已经设置了 fullcalendar,我正在尝试使用 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。
我已经验证了我的 PHP 代码在 linter 中返回的 json。
Content-Type: application/json在 json 响应中添加了一个标头。
我尝试使用eventDataTransform钩子返回在 fullcalendar 文档中找到的一些示例 JSON 请参阅编辑历史记录中的代码)

~~奇怪的是,当我将上面的 JSON 直接放在我的 javascriptevents选项中时,它确实有效。~~ 编辑:正如 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 响应的网络选项卡中看到的响应的屏幕截图

4

2 回答 2

1

恐怕我的解决方案可能对其他人没有多大用处,但它就在这里。

该错误是由于我们的主 js 文件中的以下 js 代码行引起的。

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

此行与 fullcalender 生成的 HTML 输出混淆,然后引发failure parsing json错误。

于 2019-04-16T15:05:35.997 回答
0

我在 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 年。还要插入时间以查看您的活动在哪里。

于 2019-04-16T14:00:59.930 回答