添加事件(作为json提要)时解析JSON FullCalendar失败

人气:895 发布:2022-10-16 标签: php codeigniter jquery javascript fullcalendar

问题描述

我正在使用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是服务器从GET请求返回的内容,其中包含查询组件中的Start和End值? 是的。 +您是否测试了其他因素以排除它们是导致错误的原因? 我已经没有主意了。

我做了更深入的调查,发现由于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)来关闭调试。现在运行得很好。

404