Google Maps API-Demo – Google undefiniert
<p>Ich versuche, die Google Maps API zu implementieren und habe die offizielle Demo verfolgt. </p>
<p>Ich habe den Code kopiert und nur eine Änderung vorgenommen: </p>
<pre class="brush:php;toolbar:false;">// Löst einen Fehler aus: Zugriff auf das Skript unter „file:///D:/Desktop/Stuff/map-test/test.js“ vom Ursprung aus „null“ wurde durch die CORS-Richtlinie blockiert: Cross-Origin-Anfragen werden nur für Protokollschemata unterstützt: http, data, isolierte App, Chrome-Erweiterung, Chrome, https, Chrome-untrusted.
<script type="module" src="./index.js"></script>
// In dieses geändert
<script src="./index.js"></script></pre>
<p>Als Ergebnis erhalte ich die folgende Fehlermeldung: </p>
<pre class="brush:php;toolbar:false;">ReferenceError: Google ist bei initMap nicht definiert</pre>
<p>Ich vermute, dass das daran liegt, dass <code>type="module"</code> entfernt wurde? Wie implementieren die meisten Leute es, da es so aussieht, als müssten Sie das Modul selbst hosten, um es dafür importieren zu können? </p>
<p>Ich habe den Code wie folgt geändert, aber es wird eine Warnung ausgegeben. </p>
<pre class="brush:php;toolbar:false;"><script type="text/javascript"https://maps.googleapis.com/maps/api/js?key= API_KEY"></script>
// Warnung: Die Google Maps-JavaScript-API wurde direkt ohne Rückruf geladen. Dies wird nicht unterstützt und kann zu Race-Bedingungen und einer suboptimalen Leistung führen. Informationen zu unterstützten Lademustern finden Sie unter https://goo.gle/js-api-loading< /pre>
<p>Vielen Dank! </p>
<p>Herausgeber:</p>
<p>Ich habe die vorherigen Antworten zur Verwendung eines HTTP-Servers zum Hosten von Dateien gelesen und falsch verstanden, was sie mit dem Hosten von JS-Dateien meinen. Stattdessen sollten Sie die HTML-Datei zu Testzwecken lokal hosten, anstatt sie direkt zu öffnen (d. h. durch Doppelklick im Datei-Explorer). </p>
<p>Verwenden Sie also Python3:</p>
<pre class="brush:php;toolbar:false;"># im Verzeichnis, das index.html enthält:
python3 -m http.server 8080</pre>
<p>Der Besuch von http://localhost:8080/index.html funktioniert bei mir. Danke! </p>