首页 > 解决方案 > 添加事件时解析 JSON FullCalendar 失败(作为 json 提要)

问题描述

我正在使用 Codeigniter 4、JQuery 和 AJAX

我使用 FullCalendar 在页面中添加了一个日历,基本结构如下:

var base_url = $("#base_url").val();
var calendarEl = $("#calendar")[0];
var calendar = new FullCalendar.Calendar(calendarEl, {
  initialView: 'dayGridMonth',
  headerToolbar: {
    left:'prev,next today',
    center: 'title',
    right: 'dayGridMonth,timeGridWeek,timeGridDay'
  },
  events: base_url + '/calendar/fetch_activities',
  editable: true,
  buttonText: {
                today: "Today",
                month: "Month",
                week: "Week",
                day: "Day",
                list: "List",
                prev: "Prev",
                next: "Next"
   },
  dateClick: function(info) {
    // console.table(info);
  }
});

我试图获取 events: base_url + '/calendar/fetch_activities',理论上应该使用的事件,因为它接受的结构是:

events: [
    {
      id: 'a',
      title: 'my event',
      start: '2018-09-01'
    }
  ]

我的输出events: base_url + '/calendar/fetch_activities',是:

[{
   "title":"Meeting with Mike",
   "start":"2021-04-08 11:00:00",
   "end":"2021-04-08 00:00:00"
},
{
   "title":"Meeting with Mike",
   "start":"2021-04-13 00:00:00",
   "end":"2021-04-13 00:00:00"
}]

但无论出于何种原因,我 仍然收到此错误图像显示消息解析 JSON 失败

这里可能是什么问题?

==编辑

+FullCalendar 代码中是否生成错误?是的。
+在日历选项中省略事件提要属性是否可以防止错误?
是的。
+测试是否确认发布的 JSON 是服务器从 GET 请求返回到服务器的内容,并在查询组件中具有开始和结束值?
是的。
+您是否测试了其他事情以排除它们导致错误?
我已经没有想法了。

我做了更多的挖掘,发现由于 JSON 错误,这条消息并不总是显示;
https://github.com/fullcalendar/fullcalendar/issues/4692 https://github.com/fullcalendar/fullcalendar/issues/4952

标签: javascriptphpjquerycodeigniterfullcalendar

解决方案


我重新检查了文件,结果发现 JSON 文件有问题,因为它以某种方式包含由 CodeIgniter 的调试栏发送的脚本标记。

[{"title":"aaa22","start":"2021-04-01","end":"2021-04-01","id":"4"},{"title":"aaaeeee","start":"2021-03-30","end":"2021-03-30","id":"48"},{"title":"beep boop","start":"2021-03-31","end":"2021-03-31","id":"54"},{"title":"lorem ipsum edit","start":"2021-04-06","end":"2021-04-06","id":"55"}]
<script type="text/javascript"  id="debugbar_loader" data-time="1618658976" src="localhost/myapp/?debugbar"></script><script type="text/javascript"  id="debugbar_dynamic_script"></script><style type="text/css"  id="debugbar_dynamic_style"></style>

我不知道这是怎么发生的,但我必须调查一下。

编辑:

您可以通过进入Config/Boot/development.php并添加define('CI_DEBUG', false). 现在运行良好。


推荐阅读