Es ist ein Fehler aufgetreten: Es wird versucht, Json-Daten mithilfe von PHP bei der Einrichtung des cPanel-Servers abzurufen
P粉896751037
2023-08-13 19:44:52
<p>Ich habe eine index.html-Datei mit Javascript: </p>
<pre class="brush:php;toolbar:false;">asynchrone Funktion fetchCelebritiesData() {
versuchen {
const Antwort = Warten auf fetch('/data.php');
const data = Warten auf Antwort.json();
Rückgabedaten;
} Catch (Fehler) {
console.error('Fehler beim Abrufen der Daten:', Fehler);
zurückkehren [];
}
}</pre>
<p>Die PHP-Datei verbindet die Daten mit der Anwendung und ruft die Daten aus der Datei „names.json“ ab. </p>
<pre class="brush:php;toolbar:false;"><?php
// Prüfen Sie, ob die Anfrage von einer erlaubten Domain kommt
$allowedOrigins = array("example.com", "www.example.com");
$origin = $_SERVER['HTTP_ORIGIN'] ?? ''; // HTTP_ORIGIN aus der Anfrage abrufen
if (in_array($origin, $allowedOrigins)) {
header("Access-Control-Allow-Origin: $origin");
} anders {
header("HTTP/1.1 403 Verboten");
Ausfahrt;
}
//JSON-Daten lesen und ausgeben
$data = file_get_contents("data.json");
header("Content-Type: application/json");
echo $data;
?></pre>
<p>Diese Einstellung führt zu einem Fehler in der Konsole mit der folgenden Fehlermeldung: </p>
<pre class="brush:php;toolbar:false;">ET https://example.com.com/data.php 403
fetchCelebritiesData @ (index):291
(anonym) @ (Index):375
laden (asynchron)
(anonym) @ (Index):373
(index):295 Fehler beim Abrufen der Daten: SyntaxError: Unerwartetes Ende der JSON-Eingabe
bei fetchCelebritiesData ((index):292:33)
bei async (index):375:30
fetchCelebritiesData @ (index):295
Warten in fetchCelebritiesData (asynchron)
(anonym) @ (Index):375
laden (asynchron)
(anonym) @ (index):373</pre>
<p>Benötigen Sie Hilfe beim Verständnis möglicher Probleme. Ich habe die Berechtigungen für die PHP- und JSON-Dateien und -Ordner überprüft und alles sieht gut aus. --6 4 4--</p>
<p>Es wurde ein Protokoll erstellt, das ein erneutes Auftreten dieses Fehlers zeigt. </p>
<p><code>[11.08.2023 09:08:58 UTC] PHP-Hinweis: Undefinierter Index: HTTP_ORIGIN in /home/pixellic/public_html/web-applications/celebrities-age-finder/get_secure_data.php auf Zeile 4</code></p>
<p>Ich bin neu im Programmieren. </p>
<p>Vielen Dank. </p>
<p>Ich versuche, JSON-Daten mithilfe einer PHP-Datei sicher abzurufen. </p>
<p>Aber ich habe einen 403-Fehler erhalten. </p>
除非您在请求中发送了一个
Origin
头部(请参见手册),否则$_SERVER
中不会有HTTP_ORIGIN
元素。但是您可以使用REMOTE_HOST
代替:正如您所指出的,您的代码会导致403错误,这是因为此测试失败(因为
$origin
始终是''
):请注意,在可能发送
Origin
头部的情况下,您可以将REMOTE_HOST
用作备用: