Веб-API Google Places не взаимодействует с суперагентом

Я пытаюсь запросить API автозаполнения мест с помощью Google, используя следующий фрагмент

request.get(`https://maps.googleapis.com/maps/api/place/autocomplete/`).query(params)

С правильными параметрами код завершится ошибкой, что приведет к исключению CORS.

Failed to load https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amsterdam&key={super secret key}: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:7000' is therefore not allowed access.

Если я перейду на вкладку своей сети, я увижу, что сам запрос работает отлично и даже возвращает дату, которую я хочу.

Я работаю с superagent-es6-promise.


person requinard    schedule 03.09.2017    source источник
comment
Связанный stackoverflow.com/questions/44336773/ и stackoverflow.com/questions/43443836/   -  person sideshowbarker    schedule 04.09.2017


Ответы (1)


Заголовки CORS не заданы для веб-службы Places API на внутренних серверах Google. Таким образом, вы не сможете вызывать веб-службу Places API из кода JavaScript на стороне клиента из-за политики браузеров Same-Origin.

Чтобы использовать Places на стороне клиента JavaScript, вы должны использовать библиотеку Places API Google Maps JavaScript. В библиотеке мест есть функция поиска поблизости и текстового поиска, а также виджет автозаполнения и сервис, очень похожий на соответствующий веб-сервис.

Для получения дополнительной информации, пожалуйста, ознакомьтесь с документацией:

https://developers.google.com/maps/documentation/javascript/places

Надеюсь, поможет!

person xomena    schedule 03.09.2017
comment
Оказывается, я уже загружал эти библиотеки через google-map-react, и мне просто нужно было расширить это, чтобы получить доступ к API мест. - person requinard; 05.09.2017