Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengendalikan Ralat Kandungan Campuran dalam Halaman HTTPS dengan Operasi AJAX GET?

Bagaimana untuk Mengendalikan Ralat Kandungan Campuran dalam Halaman HTTPS dengan Operasi AJAX GET?

Susan Sarandon
Susan Sarandonasal
2024-11-13 04:34:021117semak imbas

How to Handle Mixed Content Errors in HTTPS Pages with AJAX GET Operations?

Mengendalikan Ralat Kandungan Campuran dalam Halaman HTTPS dengan Operasi AJAX GET

Apabila menyerahkan permintaan GET dari halaman HTTPS ke titik akhir HTTP, anda mungkin menghadapi ralat "Kandungan campuran disekat". Ralat ini berlaku kerana penyemak imbas menghalang memuatkan kandungan HTTP yang tidak selamat pada halaman HTTPS selamat.

Contoh:

Pertimbangkan skrip AJAX ini:

$.ajax({
    url: "http://example.com/api",
    success: function(data) {
        // Redirect to HTTPS thank-you page
        window.location.href = "https://thankyou.com";
    }
});

Apabila menjalankan skrip ini pada halaman HTTPS (https://mypage.com), penyemak imbas akan menyekat permintaan ke titik akhir HTTP (http://example.com/api) disebabkan kandungan bercampur.

Penyelesaian:

Walaupun menukar titik akhir API kepada HTTPS adalah sesuai, ia mungkin tidak selalunya mungkin. Berikut ialah penyelesaian alternatif:

1. Cipta Fail PHP:

Buat fail PHP (cth., process_form.php) yang menerima data borang melalui POST.

2. Kendalikan Permintaan POST dalam Fail PHP:

Dalam fail PHP, gunakan cURL untuk menghantar data ke API HTTP.

<?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. Hantar Borang ke Fail PHP:

Tukar tindakan borang anda kepada fail PHP:

<form action="process_form.php" method="post">
    <!-- Form fields -->
    <input type="submit" value="Submit">
</form>

4. Lumpuhkan Semakan Kandungan Campuran Ketat (Pilihan):

Jika penyelesaian di atas tidak berfungsi, anda boleh menambah teg meta berikut pada halaman HTML untuk melumpuhkan pemeriksaan kandungan campuran yang ketat:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Nota: Ini bukan penyelesaian yang disyorkan kerana ia membenarkan kandungan tidak selamat dimuatkan pada selamat muka surat.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat Kandungan Campuran dalam Halaman HTTPS dengan Operasi AJAX GET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn