
GCP コンピューティング エンジンで実行され、ポート 3001 に出力を表示する Python flask-cors コードがあります。サーバー インスタンスの物理アドレスが x1.x2.x3.x4 であるとします。
JavaScript プラグインによって読み込まれる myJSFile.js という JavaScript ファイルがあります。このファイルには次のコード行が含まれています (残りのコードは問題とは関係がないように思われるため提供されていません)。
fetch('http://x1.x2.x3.x4:3001/p1', {
method: 'POST',
body: JSON.stringify({ message: text123 }),
mode: 'cors',
headers: {'Content-Type': 'application/json'},
myJSFile.js はパブリック クラウド バケットで共有されるため、パブリック Web サイトに埋め込まれるプラグインがアクセスできます。
プラグインを HTML ファイル (ローカルのコンピュータ上) から実行すると、問題なく実行され、結果が提供されます。
wordpress ウェブサイト aaa.com からプラグインを実行すると、次のエラーが発生します:
混合コンテンツ: 「https://aaa.com/」のページは HTTPS 経由で読み込まれましたが、安全でないリソース「http://x1.x2.x3.x4:3001/p1」を要求しました。この要求はブロックされました。コンテンツは HTTPS 経由で提供する必要があります。
コンピューティング エンジン インスタンスのプロパティを確認したところ、「https トラフィック: オン」と表示されています。
コード内で http を https に変更してみましたが、この問題は解決しませんでした。ブラウザに次のエラーが表示されます: 「リソースの読み込みに失敗しました: net::ERR_SSL_PROTOCOL_ERROR」
サーバー上で、次のエラーに気付きました:
Google Compute Engine のエラーを確認する
いくつかの回避策があることに気付きました。例えばこのサイトwordpress で。ただし、より一般的なプラグインを使用するには、GCP 設定を変更するか、コードを変更することでこの問題を解決できるソリューションを探しています。アドバイスをいただければ幸いです。また、js ファイルを共有するための現在のアプローチを強化する方法についての提案があれば、お知らせください。