Javascript 为什么fullcalendar无法解析JSON? 总结
我已经设置了fullcalendar,我正试图使用他们文档中描述的JSON事件源来显示其中的数据 我一直收到以下失败消息Javascript 为什么fullcalendar无法解析JSON? 总结,javascript,json,fullcalendar,fullcalendar-4,Javascript,Json,Fullcalendar,Fullcalendar 4,我已经设置了fullcalendar,我正试图使用他们文档中描述的JSON事件源来显示其中的数据 我一直收到以下失败消息failure解析JSON 我尝试过的事情 这是将触发失败消息的JSON[{“title”:“Lorem Ipsum”,“start”:“2019-04-01”,“end”:“2019-04-02”},{“title”:“Test”,“start”:“2018-09-01”,“end”:“2018-09-02”}] 我正在使用fullcalendar版本4.0.2。 我已经验证
failure解析JSON
我尝试过的事情
这是将触发失败消息的JSON[{“title”:“Lorem Ipsum”,“start”:“2019-04-01”,“end”:“2019-04-02”},{“title”:“Test”,“start”:“2018-09-01”,“end”:“2018-09-02”}]
我正在使用fullcalendar版本4.0.2。我已经验证了PHP代码返回的json字符串。
我在json响应中添加了一个
内容类型:application/json
头。我尝试使用
eventDataTransform
hook返回fullcalendar文档中的一些示例JSON(请参阅编辑历史记录中的代码)
~~奇怪的是,当我将上面的JSON直接放在我的javascript中的events
选项中时,它确实起作用了。~~编辑:正如Jaromanda X和Quentin所指出的,这是一个javascript数组,而不是JSON
代码
var calendar=newfullcalendar.calendar(calendarEl{
插件:['dayGrid'],
defaultView:'dayGridMonth',
区域设置:“nl”,
事件:'/fullcalendar/json.php'
});
我希望可以解析我的json,因为响应与我直接给事件选项的响应相同
附加信息
json.php文件的内容
我在php页面中尝试了您的代码,并以事件:'/fullcalendar/json.php'的形式调用了fullcalendar
我不知道是什么原因导致了您的问题。
工作完美
<?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'
]
]);
我担心我的解决方案可能对其他人没有多大用处,但它就在这里
这个错误是由我们的主js文件中的以下js代码行引起的
if($('table')。长度>0){
$(“表”).wrap(“”);
}
这一行与FullCalendar生成的HTML输出相冲突,后者随后抛出解析json的错误。事件:[{“title”:“Lor….}]
不是json,而是事件:[{“title”:“Lorem….9-02”}'
是下面一行中的json“-这是一个JavaScript数组,不是JSON。我怀疑method'POST',
应该是method'GET',
,但这只是一个猜测。您的“fullcalendar/json.php”端点是否需要POST请求?@JaromandaX感谢您的评论。这可以解释为什么解析“json”没有失败,因为它不是。我注意到在eventDataTransform
处理程序函数中,您返回了一个包含一个对象的数组。我非常确定您需要返回的只是对象(不是包装在数组中)。我还获取了fullcalendar所需的代码,它可以正常工作。问题出在别的地方。如果我能找到解决方案,我会把它贴在这里。感谢您抽出时间来研究我的问题。尽管很可能没有其他人会有这个确切的原因,但只要大致了解您是如何解决的,可能会对其他人有所帮助。感谢您不厌其烦地发布您的解决方案。