HTTPS ページから HTTP AJAX 操作を実行しようとすると、「混合コンテンツはブロックされました」エラー。この問題は、安全な HTTPS ページから行われている安全でない HTTP リクエストをブラウザが検出した場合に発生します。
この問題に対処するには、次の解決策を使用できます。
ターゲット API が HTTPS をサポートしている場合は、HTTPS プロトコルを使用するように AJAX リクエストを更新する必要があります:
url: "https://XX.XXX.XX.XX/vicidial/non_agent_api.php",
API プロトコルを変更できない場合は、HTML ページに次のメタ タグを追加して、混合コンテンツを許可できます:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
これにより、安全でない HTTP リクエストを HTTPS に自動的にアップグレードし、混合コンテンツを解決するようにブラウザに指示されます。
前のソリューションが実行できない場合は、HTTP AJAX リクエストを受信し、HTTPS を使用してターゲット API に転送するサーバー側プロキシ スクリプトを作成できます。
<?php // Read and parse incoming data $data = $_GET; // Send data to API via HTTPS $result = file_get_contents("https://XX.XXX.XX.XX/vicidial/non_agent_api.php?queries=" . http_build_query($data)); // Redirect user to thank-you page header("Location: https://www.example.com/thank-you"); ?>
以上がHTTPS サイトでの AJAX 呼び出しの「混合コンテンツがブロックされました」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。