遇到錯誤:嘗試在cPanel伺服器設定上使用PHP取得Json數據
<p>我有一個包含javascript的index.html檔案:</p>
<pre class="brush:php;toolbar:false;">async function fetchCelebritiesData() {
try {
const response = await fetch('/data.php');
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching data:', error);
return [];
}
}</pre>
<p>PHP檔案將資料連接到應用程序,並從names.json檔案中獲取資料。 </p>
<pre class="brush:php;toolbar:false;"><?php
// 檢查請求是否來自允許的域名
$allowedOrigins = array("example.com", "www.example.com");
$origin = $_SERVER['HTTP_ORIGIN'] ?? ''; // 從請求中取得HTTP_ORIGIN
if (in_array($origin, $allowedOrigins)) {
header("Access-Control-Allow-Origin: $origin");
} else {
header("HTTP/1.1 403 Forbidden");
exit;
}
// 讀取並輸出JSON數據
$data = file_get_contents("data.json");
header("Content-Type: application/json");
echo $data;
?></pre>
<p>這個設定在控制台中給我一個錯誤,錯誤訊息如下:</p>
<pre class="brush:php;toolbar:false;">ET https://example.com.com/data.php 403
fetchCelebritiesData @ (index):291
(anonymous) @ (index):375
load (async)
(anonymous) @ (index):373
(index):295 Error fetching data: SyntaxError: Unexpected end of JSON input
at fetchCelebritiesData ((index):292:33)
在 async (index):375:30
fetchCelebritiesData @ (index):295
await in fetchCelebritiesData (async)
(anonymous) @ (index):375
load (async)
(anonymous) @ (index):373</pre>
<p>需要幫助理解可能的問題。我已經檢查了PHP和JSON檔案以及資料夾的權限,看起來都沒問題。 --6 4 4--</p>
<p>產生了一個日誌,顯示了這個錯誤的重複。 </p>
<p><code>[11-Aug-2023 09:08:58 UTC] PHP Notice: Undefined index: HTTP_ORIGIN in /home/pixellic/public_html/web-applications/celebrities-age-finder/get_secure_data.public_html/web-applications/celebrities-age-finder/get_secure_data.public_html/php on line 4</code></p>
<p>我是一個編碼新手。 </p>
<p>謝謝。 </p>
<p>我嘗試使用php檔案安全地取得json資料。 </p>
<p>但是我得到了一個403錯誤。 </p>