出于某种原因,我无法将我的JSON提要(通过php组装)显示在我的Fullcalendar插件上。 JSON是有效的,如果我将其硬编码为事件源,则效果很好。但是当它通过URL获取时,没有任何显示!我知道有几个人遇到过同样的问题,但要么尚未得到回答,要么他们的解决方案对我来说似乎不起作用。对此有任何帮助非常感谢,因为我已经盯着这两天了,不能休息一下。
这是我的js
$(function()
{
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: false,
minTime: 7,
maxTime: 20,
slotMinutes: 15,
eventRender: function (event, element) {
element.find('.fc-event-title').html(event.title);
},
events: {
url: "http://mywebsite.com/js/schedule_feed.php",
data: {locationID: <?=$locationID?>},
type: "POST",
error: function () {
alert('there was an error while fetching events!');
},
},
});
});
这是我的php:
<?php
mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db("mydatabase") or die(mysql_error());
$query = "select schedule.schedule_id, schedule.type, schedule.show, schedule.schedule_date, patients.fname, patients.lname
from schedule
LEFT JOIN patients
ON schedule.patient_id=patients.patient_id
WHERE patients.locationID='".$_POST['locationID']."'";
$res = mysql_query($query) or die(mysql_error());
$events = array();
while ($row = mysql_fetch_assoc($res)) {
$eventsArray['id'] = $row['schedule_id'];
$eventsArray['title'] = ucfirst(strtolower($row['lname'])) . ", " . ucfirst(strtolower($row['fname'])); //. $isNewCustomer;
$eventsArray['start'] = strtotime($row['schedule_date']);
$timestamp = strtotime($row['schedule_date']) + 60*30;
$eventsArray['end'] = $timestamp;
$eventsArray['backgroundColor'] = '#999';
$eventsArray['textColor'] = '#fff';
$eventsArray['url'] = 'http://'.$_SERVER['HTTP_HOST'].'/index.php/schedule/edit_appt/' . $row['schedule_id'];
$eventsArray['allDay'] = false;
$eventsArray['editable'] = false;
$eventsArray['timeFormat'] = 'h(:mm)';
$events[] = $eventsArray;
}
echo json_encode($events);
?>
再一次,如果我直接在浏览器中输入我的php url,它会为我提供有效的JSON。如果我从浏览器复制那个JSON提要并将其直接硬编码到JS中......它可以工作!到底他妈发生了什么?提前谢谢!
答案 0 :(得分:1)
我想通了!对于遇到同样问题的任何人来说,它与跨域ajax有关。您可以在以下链接上阅读: Origin is not allowed by Access-Control-Allow-Origin
我刚刚将此代码添加到我的php脚本的顶部:
<?php header('Access-Control-Allow-Origin: http://www.mydomain.com'); ?>