Erreur rencontrée : tentative d'obtention de données Json à l'aide de PHP sur la configuration du serveur cPanel
P粉896751037
2023-08-13 19:44:52
<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>
Sauf si vous avez plutôt envoyé un
Origin
头部(请参见手册),否则$_SERVER
中不会有HTTP_ORIGIN
元素。但是您可以使用REMOTE_HOST
dans votre demande :Comme vous l'avez souligné, votre code génère une erreur 403 car ce test échoue (car
$origin
始终是''
) :Veuillez noter qu'il peut être envoyé
Origin
头部的情况下,您可以将REMOTE_HOST
en sauvegarde :