Karte wird nicht dargestellt wenn Seite aufgerufen mit https://

Wenn ich eine Internetseite normal, ohne secure aufrufe, dann wird meine Karte dargestellt. Wenn ich aber den selben URL mit vorangestelltem https:// aufrufe, wird die Karte NICHT dargestellt. Ich brauche die Verschlüsselung weil ich den aktuellen Standort abfragen will. Ich arbeite mit php.
https://esdohr.de/test/php/Haltestellen_Map_OpenStreet.php
In dieser Programmversion ist noch keine GPS-Abfrage gemacht.
Hat jemand vielleicht dieses Problem schon mal erlebt und kann mir weiter helfen?
Danke im voraus
Werner Esdohr

Mein FF sagt:

Laden von gemischten aktiven Inhalten "http://www.openlayers.org/api/OpenLayers.js" wurde blockiert.
2 Haltestellen_Map_OpenStreet.php
Laden fehlgeschlagen für das <script> mit der Quelle "http://www.openlayers.org/api/OpenLayers.js". Haltestellen_Map_OpenStreet.php:6:1
ReferenceError: OpenLayers is not defined
Haltestellen_Map_OpenStreet.php:8:5
addListeners() expander.js:74:16
adding default listeners to document expander.js:74:16
Mutations-Ereignisse sollten nicht mehr verwendet werden. Verwenden Sie MutationObserver stattdessen. jquery-3.4.1.min.js:2:41038

Danke für die sehr schnelle Antwort! Ich muss mir das erstmal genauer ansehen: bin noch ziemlich unerfahren. Schon ne Weile her, dass ich das mal ausprobiert hatte. Nur, komisch, dass das mit http:// dargestellt aber mit https:// nicht?

Kein Problem, wir haben alle klein angefangen.

Tipp: Wenn eine Webseite “spinnt”, schalte die “Konsole” ein. Das geht z.B. beim FF mit F12.
Dann bekommst du viele Runtime Informationen vom Browser.

Gruss
walter

Naja, wenn Du die Seite mit http-Protokoll aufrufst, dann gibt es auch keinen Konflikt mit dem per http eingebundenen JavaScript. Wenn Du die Seite aber mit https-Protokoll lädst, dann gibt es den Konflikt und der Browser läd das Skript von OpenLayers nicht. Ergo: Keine Karte :wink:

Du kannst das statisch in Deinem PHP-Skript korrigierten (https://www.openlayers.org/…)), allerdings wäre es geschickter in PHP zu ermitteln mit welchem Protokoll (http oder https) die Seite aufgerufen wurde, und dann den Aufruf von Openlayers danach dynamisch ins HTML schreiben.

Vielen Dank: der letzte Beitrag hat mir den richtigen Weg gezeigt: Ich hatte in gesicherter Umgebung, Openlayers ungesichert aufgerufen. Da ich die augenblickliche Position des Users mit zusätzlichen Ortsinformationen erweitern will, brauche ich die gesicherte Umgebung. Also, der Vorschlag aus ihrem letzten Absatz: Jetzt funktioniert es!