我正在使用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,包括我日历上事件的所有细节。所以我认为这是问题,无论出于何种原因,我都无法将所有数据加载到我的网站上。我现在打算解决这个问题
我刚刚阅读了关于这个问题的精彩article。使用JSONP,服务器端代理或CORS似乎有3种方法来接近它。作者提到了前两个创建潜在安全漏洞的解决方案,而这个项目不能允许这样做。 CORS看起来像是一条可能的路线。
答案 0 :(得分:0)
您正在尝试访问需要身份验证的链接。
如果您尝试在隐身窗口中访问相同的网址,是否收到相同的错误(&#34;未找到404&#34;)?