[英]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.