2017-12-21 2 views
1

Ich versuche, Daten von API Google PlacesVueJS axios CORS Google Api

axios.get('https://maps.googleapis.com/maps/api/place/details/json?placeid=...&key=mykey') 
    .then(response => { 
     commit('SET_REVIEWS', { list: response.data }) 
    }, error => { 
     console.log(error) 
    })                        

Und danach zu bekommen, ich habe diesen Fehler enter image description here ich den Fehler mit CORS auf Server-Seite wissen, aber was soll ich tun?

+2

Der einzige Weg, unterstützt den Places API-Endpunkte mit der Places-Bibliothek zu verwenden, wie in der offcial Dokumentation beschrieben. Siehe https://stackoverflow.com/questions/43443836/angular-cors-jsonp-and-google-maps-http-api-calls/43444274#43444274 und https://stackoverflow.com/questions/44336773/google-maps -api-no-access-control-allow-origin-header-ist-present-on-the-reque/44339169 # 44339169 – sideshowbarker

Antwort

1

In meinem Projekt verwende ich NuxtJS und ich fand die Lösung. Sie müssen eine Anfrage auf der Serverseite (nodeJS) stellen, nicht den Client. Wie unten gezeigt, holen die Methode ermöglicht es Ihnen, dies zu tun und es funktioniert
https://nuxtjs.org/guide/vuex-store#the-fetch-method

+0

Wie kann ich dieses Problem am Frontend lösen? Ich verwende kein serverseitiges Rendering. –

+0

Am Frontend sollten Sie die Google Places-Bibliothek der Google Maps JavaScript-API verwenden: https://developers.google.com/maps/documentation/javascript/places – xomena

0

Erstellen Sie einfach und eine Webservice auf Ihrem eigenen Server aufrufen, die wiederum Googles Webservice aufruft.

Der Hauptcode Ihres Webservice könnte so aussehen, in PHP:

$url = 'https://maps.googleapis.com/maps/api/place/details/json?key=' . $key . '&placeid=' . $place_id; echo json_decode(file_get_contents($url), true);