我的fullcalendar上没有显示任何事件。 (来自Google日历)

时间:2015-07-06 14:39:09

标签: javascript jquery calendar fullcalendar

我正在使用JavaScript插件“fullcalendar”以及Google日历模块在网页上查看Google日历。问题是没有显示任何事件,控制台中也没有任何附带的错误消息。

空日历显示正常。

我已生成API密钥,并检索了我想要显示的日历的日历ID。

我的JS如下:

    $(document).ready(function(){
      console.log("Function running");
      var calendar = $('#calendar'); 
      calendar.fullCalendar({
        googleCalendarApiKey: 'my-api-key',
        events: {
          googleCalendarId: 'my-calendar-id'
        }
      });
     });

我的html中的头部如下:

<link rel='stylesheet' href='fullcalendar/fullcalendar.css' />
<link rel='stylesheet' href='fullcalendar/fullcalendar.print.css' rel='stylesheet' media='print' />
<link href='style.css' rel='stylesheet' />
<script src='fullcalendar/lib/jquery.min.js'></script>
<script src='fullcalendar/lib/moment.min.js'></script>
<script src='fullcalendar/fullcalendar.js'></script>
<script src='fullcalendar/gcal.js'></script>
<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>
<script src='app.js' type='text/javascript'></script>
<script src='calendar.js' type='text/javascript'></script>

我有这么多参考资料的原因是因为我同时使用日历API来处理应用程序的略微不同部分。我查看了chrome dev工具中的网络选项卡,尝试识别类似JSON的东西,将事件数据带到网站,什么都没有。

我知道fullcalendar使用AJAX来更新屏幕上的日历,所以我尝试在我的谷歌日历上创建一个新事件,并查看网络标签,以防我看到更改,但没有。

console.log()正在愉快地运行,因此我知道正在加载js。

我尝试使用gcal feed返回旧方法,但$.fullcalendar.gcalFeed(url)不再是一个函数(这是公平的)。我有gcal.js文件的最新版本(V2.0不再有效,因此必须对该文件进行细微更改)。

如果有人能够找到我出错的地方,或者指出我要尝试其他事情的新方向,我将非常感激,我现在​​几乎没有想法。

更新

我没有使用日历ID,而是尝试日历中的Feed(通过在日历设置下选择xml选项并将其复制到JQuery中)。这给了我一个错误:

XMLHttpRequest cannot load     https://google.com/calendar/feeds/ed.prince5769%40gmail.com/public/basic?start=2015-06-28&end=2015-08-09&_=1436196005956. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://edprince.uk' is therefore not allowed access. The response had HTTP status code 404.

如果我按照这个网址,我会得到我正在寻找的东西,一堆XML,包括我日历上事件的所有细节。所以我认为这是问题,无论出于何种原因,我都无法将所有数据加载到我的网站上。我现在打算解决这个问题

更新#2

我刚刚阅读了关于这个问题的精彩article。使用JSONP,服务器端代理或CORS似乎有3种方法来接近它。作者提到了前两个创建潜在安全漏洞的解决方案,而这个项目不能允许这样做。 CORS看起来像是一条可能的路线。

1 个答案:

答案 0 :(得分:0)

您正在尝试访问需要身份验证的链接。

如果您尝试在隐身窗口中访问相同的网址,是否收到相同的错误(&#34;未找到404&#34;)?