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!