Подтвердить что ты не робот

API Google Places и запрос JQuery - Происхождение http://localhost не разрешено Access-Control-Allow-Origin

Я делаю некоторые тесты для проекта, который я имел в виду, который предполагает использование мест поблизости. Поэтому я пошел с большим парнем и начал возиться с Google Places Api. Я использую буклет с openstreet плитки для моей карты. Теперь все в порядке, пока я не попытаюсь использовать вещь Данга.

var lat = coords.lat;
var lng = coords.lng;
var apiUrl = "https://maps.googleapis.com/maps/api/place/nearbysearch/json";
var data = {
    key: 'AIzaSyBl8bmE8kQT7RjoXhP6k2yDti44h9-fSUI',
    location: lat+','+lng,
    radius: '10000',
    sensor: 'false',
    rankby: 'prominence',
    types: 'bar|night_club'
};
$.ajax({
  url: apiUrl,
  type: 'POST',
  data: data,    
  dataType:"jsonp",
  crossDomain: true,
  success: function(data) {
            var obj = $.parseJSON(data);
                // console.log(data.next_page_token);
          }
});

Изменение свойства dataType на json Я получаю Origin http://localhost is not allowed by Access-Control-Allow-Origin. Использование jsonp Я получаю ошибку синтаксического анализа Unexpected token : Obviusly $.parseJSON не работает... Есть ли способ сделать эту работу без использования Google Maps Api? Если ответ не будет... Есть ли еще места api так же хорошо, как google?

Спасибо!

4b9b3361

Ответ 1

Вы пытаетесь использовать веб-службу Веб-сайты API-сайтов, которая предназначена для использования с кодом сервера и не поддерживает вывод JSONP, который вам нужен для JavaScript.

В JavaScript вам нужно использовать Библиотеки мест из API Карт V3. Вы не можете просто нажимать URL-адрес непосредственно из кода JavaScript или jQuery. (Вероятно, вы можете обнаружить шаблон URL, который использует библиотека "Места", но условия службы не позволяют прямое использование без прохождения API/библиотеки, и URL-адрес может быть изменен в любое время.)

Есть ли причина, по которой вы не хотите использовать API Карт из JavaScript?

Ответ 2

https://github.com/joshtronic/php-googleplaces

Просто сделал это и загрузил его на один из моих сайтов.

<?php
include 'GooglePlaces.php';
include 'GooglePlacesClient.php';
$google_places = new joshtronic\GooglePlaces('your_key');
$google_places->location = array(<your_lat>, <your_lon>);
$google_places->radius   = 800;
$results                 = $google_places->nearbySearch();
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *'); 
echo json_encode($results);