Erreur rencontrée : tentative d'obtention de données Json à l'aide de PHP sur la configuration du serveur cPanel
P粉896751037
P粉896751037 2023-08-13 19:44:52
0
1
415
<p>J'ai un fichier index.html contenant du javascript : </p> <pre class="brush:php;toolbar:false;">fonction async fetchCelebritiesData() { essayer { const réponse = wait fetch('/data.php'); const data = attendre réponse.json(); renvoyer des données ; } attraper (erreur) { console.error('Erreur lors de la récupération des données :', erreur); retour []; } }</pré> <p>Le fichier PHP connecte les données à l'application et récupère les données du fichier names.json. </p> <pre class="brush:php;toolbar:false;"><?php // Vérifiez si la requête provient d'un domaine autorisé $allowedOrigins = array("exemple.com", "www.exemple.com"); $origin = $_SERVER['HTTP_ORIGIN'] ?? ''; // Récupère HTTP_ORIGIN à partir de la requête if (in_array($origine, $allowedOrigins)) { en-tête("Access-Control-Allow-Origin : $origine"); } autre { en-tête("HTTP/1.1 403 Interdit"); sortie; } //Lire et afficher les données JSON $data = file_get_contents("data.json"); header("Type de contenu : application/json"); écho $données ; ?>≪/pré> <p>Ce paramètre me renvoie une erreur dans la console avec le message d'erreur suivant : </p> <pre class="brush:php;toolbar:false;">ET https://example.com.com/data.php 403 récupérerCelebritiesData @ (index):291 (anonyme) @ (index):375 charger (asynchrone) (anonyme) @ (index):373 (index) : 295 Erreur lors de la récupération des données : SyntaxError : fin inattendue de l'entrée JSON à fetchCelebritiesData ((index):292:33) en asynchrone (index): 375:30 récupérerCelebritiesData @ (index):295 attendre dans fetchCelebritiesData (async) (anonyme) @ (index):375 charger (asynchrone) (anonyme) @ (index):373</pre> <p>Besoin d'aide pour comprendre les problèmes possibles. J'ai vérifié les autorisations sur les fichiers et dossiers PHP et JSON et tout semble bien. --6 4 4--≪/p> <p>Un journal a été généré montrant une récurrence de cette erreur. </p> <p><code>[11 août 2023 09:08:58 UTC] Avis PHP : index non défini : HTTP_ORIGIN dans /home/pixellic/public_html/web-applications/celebrities-age-finder/get_secure_data.php sur ligne 4</code></p> <p>Je suis nouveau dans le codage. </p> <p>Merci. </p> <p>J'essaie d'obtenir des données json en toute sécurité à l'aide d'un fichier php. </p> <p>Mais j'ai eu une erreur 403. </p>
P粉896751037
P粉896751037

répondre à tous(1)
P粉124070451

Sauf si vous avez plutôt envoyé un Origin头部(请参见手册),否则$_SERVER中不会有HTTP_ORIGIN元素。但是您可以使用REMOTE_HOSTdans votre demande :

$origin = $_SERVER['REMOTE_HOST'] ?? '';

Comme vous l'avez souligné, votre code génère une erreur 403 car ce test échoue (car $origin始终是'') :

if (in_array($origin, $allowedOrigins)) {

Veuillez noter qu'il peut être envoyé Origin头部的情况下,您可以将REMOTE_HOST en sauvegarde :

$origin = $_SERVER['HTTP_ORIGIN'] ?? $_SERVER['REMOTE_HOST'] ?? '';
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal