我正在为我网站上的每个日历加载用于FullCalendar的EventListener。问题是有时我需要改变"方法"渲染事件(取决于URL)。 我想通过eventSources传递它,并能够收回EventListener中的URL。我试图在数据中加入一些东西而没有任何成功。
在calendar-settings.js上,我打了这个电话:
eventSources: [
{
url: Routing.generate('fullcalendar_loader'),
type: 'POST',
// A way to add custom filters to your event listeners
data: {
},
error: function() {
//alert('There was an error while fetching Google Calendar!');
}
}
]
答案 0 :(得分:1)
SSE不支持发送POST数据。
基本上你必须使用GET发送你的参数。
替代方案是首先使用AJAX调用发送它(例如将其存储在PHP会话中,准备让您的SSE处理程序使用它),或者将数据放入cookie中(SSE确实支持cookie,但是只有不依赖于CORS:CORS和cookie冲突,并且cookie丢失。)或者使用XHR而不是SSE。
但GET听起来最适合您,因为数据听起来相对较短而且不是隐私权(即它不是密码)。
(快速插件:我的书第9章,HTML5 SSE数据推送应用程序深入讨论了上述所有主题。)
答案 1 :(得分:1)
所以我不得不改变一下我的EventSource并使用它:
eventSources: [
{
url: Routing.generate('fullcalendar_loader'),
type: 'GET',
// A way to add custom filters to your event listeners
data: {
Information : "value"
},
error: function() {
//alert('There was an error while fetching Google Calendar!');
}
}
]
我添加了一条路线:
<route id="fullcalendar_loader_{Information}" pattern="/fc-load-events/{Information}">
<default key="_controller">ADesignsCalendarBundle:Calendar:loadCalendar</default>
<option key="expose">true</option>
</route>
希望如果您遇到同样的问题,它将对您有用:)