javascript - 添加事件时解析 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"
}]
这里可能是什么问题?
==编辑
+FullCalendar 代码中是否生成错误?是的。
+在日历选项中省略事件提要属性是否可以防止错误?
是的。
+测试是否确认发布的 JSON 是服务器从 GET 请求返回到服务器的内容,并在查询组件中具有开始和结束值?
是的。
+您是否测试了其他事情以排除它们导致错误?
我已经没有想法了。
我做了更多的挖掘,发现由于 JSON 错误,这条消息并不总是显示;
https://github.com/fullcalendar/fullcalendar/issues/4692
https://github.com/fullcalendar/fullcalendar/issues/4952
解决方案
我重新检查了文件,结果发现 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)
. 现在运行良好。