我目前正在尝试将fullcalendar集成到我正在处理的项目中。我遇到了一些错误:select:回调在尝试提交ajax请求时产生错误。我的选择:回调如下所示:
select: function(start, end, allDay){
var title = prompt('Event Title: ');
if(title) {
var start = jQuery.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss");
var end = jQuery.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss");
$.ajax({
url: '/wp-admin/admin-ajax.php',
data: {
action: 'add_itinerary_event',
JSToken: jQuery("#JSToken").val(),
GuestID: jQuery("#GuestID").val(),
Title: title,
Start: start,
End: end,
AllDay: allDay
},
type: 'post',
success: function(json){
alert('Added Successfully');
}
});
itinerarycalendar.fullCalendar('renderEvent', {
title: title,
start: start,
end: end,
allDay: allDay
},
true);
}
itinerarycalendar.fullCalendar('unselect');
},
通过选择时间段向日历添加活动时,Chrome中的控制台会记录以下内容:
jquery-1.12.0.js?ver=4.7.4:4 Uncaught TypeError: Illegal invocation
at e (jquery-1.12.0.js?ver=4.7.4:4)
at cc (jquery-1.12.0.js?ver=4.7.4:4)
at cc (jquery-1.12.0.js?ver=4.7.4:4)
at cc (jquery-1.12.0.js?ver=4.7.4:4)
at cc (jquery-1.12.0.js?ver=4.7.4:4)
at cc (jquery-1.12.0.js?ver=4.7.4:4)
at Function.n.param (jquery-1.12.0.js?ver=4.7.4:4)
at Function.ajax (jquery-1.12.0.js?ver=4.7.4:4)
at Et.function.e.constructor.select (fitbscripts.js?ver=4.7.4:76)
at constructor.publiclyTrigger (fullcalendar.min.js?ver=4.7.4:9)
单击fitbscripts.js(我的代码的位置)指向$ .ajax行,但不提供任何进一步的信息。
在Safari中,提供了以下信息:
[Error] TypeError: Can only call HTMLElement.click on instances of HTMLElement
click (jquery-1.12.0.js:4:24813)
e (jquery-1.12.0.js:4:24813)
cc (jquery-1.12.0.js:4:24698)
cc (jquery-1.12.0.js:4:24722)
cc (jquery-1.12.0.js:4:24722)
cc (jquery-1.12.0.js:4:24722)
param (jquery-1.12.0.js:4:25060)
ajax (jquery-1.12.0.js:4:20919)
select (fitbscripts.js:76)
publiclyTrigger (fullcalendar.min.js:9:16488)
publiclyTrigger (fullcalendar.min.js:8:30679)
triggerSelect (fullcalendar.min.js:9:8211)
reportSelection (fullcalendar.min.js:9:8156)
interactionEnd (fullcalendar.min.js:7:19556)
trigger (fullcalendar.min.js:7:7856)
handleInteractionEnd (fullcalendar.min.js:7:6113)
handleInteractionEnd (fullcalendar.min.js:7:11377)
endInteraction (fullcalendar.min.js:7:6045)
d (jquery-1.12.0.js:2:3862)
n (fullcalendar.min.js:6:31915)
dispatch (jquery-1.12.0.js:3:12350)
handle (jquery-1.12.0.js:3:9077)
trigger (jquery-1.12.0.js:3:11477)
triggerHandler (jquery-1.12.0.js:3:18984)
trigger (fullcalendar.min.js:7:145)
handleMouseUp (fullcalendar.min.js:7:13137)
d (jquery-1.12.0.js:2:3862)
dispatch (jquery-1.12.0.js:3:12350)
handle (jquery-1.12.0.js:3:9077)
有谁知道可能导致这种情况的原因?我似乎想绕圈子试图找出这里发生的事情。
答案 0 :(得分:0)
我能够通过使用原生JS ajax来解决这个问题:
$.ajax({
url: '/wp-admin/admin-ajax.php',
data: {
action: 'add_itinerary_event',
JSToken: 'xyz'
},
type: 'post',
success: function(json){
alert('Added Successfully');
}
});
......变成......
var xhr = new XMLHttpRequest();
xhr.open('POST', '/wp-admin/admin-ajax.php');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader("X-CSRFToken", csrftoken); // if needed
xhr.onload = function() {
if (xhr.status === 200) {
alert('Added Successfully: ', JSON.parse(xhr.responseText));
}
};
xhr.send(JSON.stringify({
action: 'add_itinerary_event',
JSToken: 'xyz'
}));
我知道这只是一种解决方法,但它帮助我推进了fullcalendar。