Maison >développement back-end >tutoriel php >Comment gérer les erreurs de contenu mixte dans les pages HTTPS avec les opérations AJAX GET ?
Gestion des erreurs de contenu mixte dans les pages HTTPS avec les opérations AJAX GET
Lors de la soumission d'une requête GET depuis une page HTTPS vers un point de terminaison HTTP, vous peut rencontrer une erreur « Contenu mixte bloqué ». Cette erreur se produit car le navigateur empêche le chargement de contenu HTTP non sécurisé sur des pages HTTPS sécurisées.
Exemple :
Considérez ce script AJAX :
$.ajax({ url: "http://example.com/api", success: function(data) { // Redirect to HTTPS thank-you page window.location.href = "https://thankyou.com"; } });
Lors de l'exécution de ce script sur une page HTTPS (https://mypage.com), le navigateur bloquera la requête vers le point de terminaison HTTP (http://example.com/api) en raison d'un contenu mixte.
Solution :
Bien que changer le point de terminaison de l'API en HTTPS soit idéal, ce n'est pas toujours le cas être possible. Voici une solution alternative :
1. Créer un fichier PHP :
Créez un fichier PHP (par exemple, process_form.php) qui reçoit les données du formulaire via POST.
2. Gérer la requête POST dans le fichier PHP :
Dans le fichier PHP, utilisez cURL pour envoyer les données à l'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. Soumettre le formulaire au fichier PHP :
Modifiez l'action de votre formulaire en fichier PHP :
<form action="process_form.php" method="post"> <!-- Form fields --> <input type="submit" value="Submit"> </form>
4. Désactiver la vérification stricte du contenu mixte (facultatif) :
Si la solution ci-dessus ne fonctionne pas, vous pouvez ajouter la balise méta suivante à la page HTML pour désactiver la vérification stricte du contenu mixte :
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Remarque : Ce n'est pas une solution recommandée car elle permet de charger du contenu non sécurisé sur des pages sécurisées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!