в моем проекте мне нужно прочитать события, которые есть у пользователя в календаре Google, что я делаю, следуя процедуре этой веб-страницы , и когда я запрашиваю данные, отображается состояние ошибки405 метод, говоря, что я должен включить «cors», и я не знаю, в какой части API, которые у меня есть в моей учетной записи Google, я могу это сделать, или я должен инициировать curl в php, чтобы включить это.
Код:
if (
isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'
) {
$the_html = $_GET['action']();
echo $the_html;
} else {
echo "don't be silly";
die();
}
function get_times()
{
require_once('./connection.php');
echo "<script>console.log('Entré a get_times!!');</script>";
$date = new DateTime($_GET['date']);
$day_after = new DateTime($_GET['date']);
$day_after->add(new DateInterval('P1D'));
for($i=0;$i<24;$i++) {
$innerHTML_arr[] = "<option value='$i'>$i:00</option>";
}
$client = getClient();
$service = new Google_Service_Calendar($client);
$calendarId = 'primary';
$optParams = array(
'timeMin' => date('c',$date->getTimestamp()),
'timeMax' => date('c',$day_after->getTimestamp()),
);
$results = $service->events->listEvents($calendarId, $optParams);
$the_html="";
foreach ($results->getItems() as $event) {
$s = new DateTime($event->start->dateTime);
$start = date('G',$s->getTimestamp());
$minutes = date('i', $s->getTimestamp());
unset($innerHTML_arr[$start][$minutes]);
}
$the_html.=implode("",$innerHTML_arr);
return $the_html;
}
предыдущий код находится в php-файле, который я вызываю из другого php-файла с запросом GET, с чистым javascript
Код:
´function get_times(date_picker) {
var date = date_picker.value;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById('dump').innerHTML = xhttp.responseText;
}
};
xhttp.open('GET', './calendars.php?action=get_times&date=' + date + '&t=' + Math.random());
xhttp.setRequestHeader('X-Requested-With', 'xmlhttprequest');
xhttp.send();
}´
Ожидаемое поведение
Выберите любую дату, и браузер покажет: Событие1 Событие2 Событие3 ...
Фактическое поведение
Это ошибка.Запрашиваемый URL не найден на этом сервере.Это все, что мы знаем.
Характеристики - Версия PHP (PHP 7.2.5
): - ОС (Linux):