Ошибка в типе ответа метод OPTIONS в Google Calendar API - PullRequest
0 голосов
/ 28 марта 2019

в моем проекте мне нужно прочитать события, которые есть у пользователя в календаре 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):

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...