2017-09-03 81 views
0

我想查询的地方自动完成API由谷歌,使用下面的代码片断谷歌地方网页API不SuperAgent的

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

有了正确的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合作。

+0

相关https://stackoverflow.com/questions/44336773/google-maps-api-no-access-control-allow-origin-header-is-present-on-the-reque/44339169#44339169和https: //stackoverflow.com/questions/43443836/angular-cors-jsonp-and-google-maps-http-api-calls/43444274#43444274 – sideshowbarker

回答

2

未在Google后端服务器上为Places API Web服务设置CORS标头。因此,由于浏览器的同源策略,您将无法从客户端JavaScript代码调用Places API Web服务。

为了使用JavaScript,你必须使用谷歌地图的JavaScript API的地方库在客户端的地方。地方图书馆有附近的文字搜索功能,自动填充的小工具和服务与相应的网络服务非常相似。

欲了解更多详情,请看看文档:

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

希望它能帮助!

+0

事实证明,我已经通过谷歌地图反应加载这些库,我只是必须扩展到访问API的地方。 – Samyn