繁体   English   中英

jQuery FullCalendar插件的跨域JSON提要

[英]Cross domain JSON feed for jQuery FullCalendar plugin

我正在使用PHP从FullCalendar中将事件作为JSON提要,但我需要支持多个域。 我需要一个querystring变量来指定要从中提取事件的日历...这是否引起问题? 这是FullCalendar的初始化代码:

$('#full-calendar".$id."').fullCalendar({
   editable: false,
   events:'http://www.mydomain.com/resources/include/calendar-events.php?cal=".$id."',
   loading: function(bool) {
       if (bool) $('#loading').show();
       else $('#loading').hide();
   }
});

该文档说:“如果您需要访问其他域中的提要,则可以在URL中使用带?的JSONP(请参阅$.ajax的JSONP讨论)。”

但是我不确定该怎么做。

感谢您的帮助。

在较高层次上,JSONP允许您指定当AJAX请求返回数据时要调用的回调函数的名称。 HTTP GET操作可以跨不同的域进行(当您嵌入来自其他主机的图像时,您正在创建HTTP GET)。 POST(以及PUT,DELETE等)被限制在与文档相同的域中(这称为“相同来源策略”)。 JSONP在文档中添加一个额外的参数(通常为“回调”)和JavaScript函数的值(回调函数)。 发送JSON的服务器需要知道提取该参数的值。 您的请求可能如下所示:

 GET http://ical.example.com/cal.json?callback=_calDraw

cal.json servlet将返回此

 _calDraw({event:{date:'12/25/2010',title:'Jason\'s birthday'}});

现在,这部分JavaScript引用了您传递给它的回调函数,但没有相应的

  function _calDraw(data) {
     //render stuff
  }

返回的数据将失败。 重要的是,您要对要进行JSONP调用的任何服务器都具有一定程度的信任,因为您授予他们在文档中执行JavaScript的权限(它们不必返回有效的值)。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM