
Ich habe einen Python-Flask-Cors-Code, der auf der GCP-Rechner-Engine ausgeführt wird und seine Ausgabe auf Port 3001 präsentiert. Nehmen wir an, die physische Adresse meiner Serverinstanz ist x1.x2.x3.x4.
Ich habe eine Javascript-Datei namens myJSFile.js, die von einem Javascript-Plugin geladen wird. Sie enthält die folgenden Codezeilen (der restliche Code wird nicht bereitgestellt, da er für das Problem irrelevant zu sein scheint):
fetch('http://x1.x2.x3.x4:3001/p1', {
method: 'POST',
body: JSON.stringify({ message: text123 }),
mode: 'cors',
headers: {'Content-Type': 'application/json'},
myJSFile.js wird in einem öffentlichen Cloud-Bucket freigegeben, sodass das Plug-In, das in öffentliche Websites eingebettet wird, darauf zugreifen kann.
Wenn ich das Plug-In aus einer HTML-Datei (lokal auf meinem Computer) ausführe, läuft es ohne Probleme und es werden Ergebnisse bereitgestellt.
Wenn ich das Plugin von einer WordPress-Website aaa.com ausführe, erhalte ich die folgende Fehlermeldung:
Gemischter Inhalt: Die Seite unter „https://aaa.com/“ wurde über HTTPS geladen, forderte aber eine unsichere Ressource „http://x1.x2.x3.x4:3001/p1“ an. Diese Anforderung wurde blockiert; der Inhalt muss über HTTPS bereitgestellt werden.
Ich habe die Eigenschaften meiner Compute Engine-Instanz geprüft und dort wird „https-Verkehr: Ein“ angezeigt.
Ich habe versucht, im Code http in https zu ändern, aber das Problem wurde dadurch nicht behoben. Im Browser wird der Fehler angezeigt: „Ressource konnte nicht geladen werden: net::ERR_SSL_PROTOCOL_ERROR“
Auf dem Server ist mir folgender Fehler aufgefallen:
Siehe Fehler in der Google Compute Engine
Mir ist aufgefallen, dass es einige Workarounds gibt, zum BeispielDiese Seitein WordPress. Um jedoch ein allgemeineres Plugin zu haben, suche ich nach einer Lösung, die es mir ermöglicht, dies durch Ändern der GCP-Einstellungen oder Änderungen an meinem Code zu lösen. Jeder Rat ist äußerst willkommen. Wenn Sie außerdem Vorschläge haben, wie ich meinen aktuellen Ansatz zum Teilen von JS-Dateien verbessern kann, lassen Sie es mich bitte wissen.