2017-09-03 61 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