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?

Спасибо!

Ответ 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);