Heim > Artikel > Backend-Entwicklung > Wie behandelt man Fehler mit gemischten Inhalten in HTTPS-Seiten mit AJAX-GET-Vorgängen?
Umgang mit Fehlern bei gemischten Inhalten in HTTPS-Seiten mit AJAX-GET-Vorgängen
Wenn Sie eine GET-Anfrage von einer HTTPS-Seite an einen HTTP-Endpunkt senden, müssen Sie Möglicherweise tritt der Fehler „Gemischter Inhalt blockiert“ auf. Dieser Fehler tritt auf, weil der Browser das Laden unsicherer HTTP-Inhalte auf sicheren HTTPS-Seiten verhindert.
Beispiel:
Bedenken Sie dieses AJAX-Skript:
$.ajax({ url: "http://example.com/api", success: function(data) { // Redirect to HTTPS thank-you page window.location.href = "https://thankyou.com"; } });
Wenn Sie dieses Skript auf einer HTTPS-Seite (https://mypage.com) ausführen, blockiert der Browser die Anfrage an den HTTP-Endpunkt (http://example.com/api) aufgrund gemischter Inhalte.
Lösung:
Die Änderung des API-Endpunkts auf HTTPS ist zwar ideal, aber möglicherweise nicht immer möglich. Hier ist eine alternative Lösung:
1. Erstellen Sie eine PHP-Datei:
Erstellen Sie eine PHP-Datei (z. B. process_form.php), die die Formulardaten per POST empfängt.
2. Behandeln Sie die POST-Anfrage in der PHP-Datei:
Verwenden Sie in der PHP-Datei cURL, um die Daten an die HTTP-API zu senden.
<?php $api_url = "http://example.com/api"; $post_data = $_POST; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data)); $result = curl_exec($ch); curl_close($ch); // Redirect to thank-you page header("Location: https://thankyou.com"); ?>
3. Formular an PHP-Datei senden:
Ändern Sie die Aktion Ihres Formulars in die PHP-Datei:
<form action="process_form.php" method="post"> <!-- Form fields --> <input type="submit" value="Submit"> </form>
4. Deaktivieren Sie die strikte Prüfung gemischter Inhalte (optional):
Wenn die obige Lösung nicht funktioniert, können Sie der HTML-Seite das folgende Meta-Tag hinzufügen, um die strikte Prüfung gemischter Inhalte zu deaktivieren:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Hinweis: Dies ist keine empfohlene Lösung, da dadurch unsichere Inhalte auf sichere Seiten geladen werden können.
Das obige ist der detaillierte Inhalt vonWie behandelt man Fehler mit gemischten Inhalten in HTTPS-Seiten mit AJAX-GET-Vorgängen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!