Es ist ein Fehler aufgetreten: Es wird versucht, Json-Daten mithilfe von PHP bei der Einrichtung des cPanel-Servers abzurufen
P粉896751037
P粉896751037 2023-08-13 19:44:52
0
1
430
<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>
P粉896751037
P粉896751037

Antworte allen(1)
P粉124070451

除非您在请求中发送了一个Origin头部(请参见手册),否则$_SERVER中不会有HTTP_ORIGIN元素。但是您可以使用REMOTE_HOST代替:

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

正如您所指出的,您的代码会导致403错误,这是因为此测试失败(因为$origin始终是''):

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

请注意,在可能发送Origin头部的情况下,您可以将REMOTE_HOST用作备用:

$origin = $_SERVER['HTTP_ORIGIN'] ?? $_SERVER['REMOTE_HOST'] ?? '';
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage