2017-09-03 12 views
0

に協力していない、コードparamsは正しいと次のスニペットGoogleプレイスのWeb APIは、私はGoogleの場所オートコンプリートAPIを照会しようとしていたSuperAgent

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で作業しています。

+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

CORSヘッダーは、GoogleバックエンドサーバーのPlaces API Webサービス用に設定されていません。したがって、ブラウザのSame-Originポリシーのために、クライアント側JavaScriptコードからPlaces APIウェブサービスを呼び出すことができなくなります。

クライアントサイドJavaScriptでプレイスを使用するには、Google Maps JavaScript APIのプレイスライブラリを使用する必要があります。場所ライブラリには、近くにあるテキスト検索機能と、対応するWebサービスと非常によく似た自動完成ウィジェットとサービスがあります。詳細については

のドキュメントを見てください。

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

はそれが役に立てば幸い!

+0

私はすでにgoogle-map-reactを通じてこれらのライブラリを読み込んでいました。場所APIへのアクセスを得るためにそれを拡張しなければなりませんでした。 – Samyn

関連する問題