오류 발생: cPanel 서버 설정에서 PHP를 사용하여 Json 데이터를 가져오는 중
<p>javascript가 포함된 index.html 파일이 있습니다. </p>
<pre class="brush:php;toolbar:false;">비동기 함수 fetchCelebritiesData() {
노력하다 {
const 응답 = fetch('/data.php')를 기다립니다;
const 데이터 = 응답을 기다립니다.json();
데이터를 반환합니다.
} 잡기(오류) {
console.error('데이터 가져오기 오류:', error);
반품 [];
}
}</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("액세스 제어-허용-원본: $origin");
} 또 다른 {
header("HTTP/1.1 403 금지됨");
출구;
}
//JSON 데이터를 읽고 출력합니다.
$data = file_get_contents("data.json");
header("콘텐츠 유형: 애플리케이션/json");
에코 $ 데이터;
?></pre>
<p>이 설정을 사용하면 콘솔에 다음 오류 메시지와 함께 오류가 표시됩니다. </p>
<pre class="brush:php;toolbar:false;">ET https://example.com.com/data.php 403
fetchCelebritiesData @ (색인):291
(익명)@(색인):375
로드(비동기)
(익명)@(색인):373
(색인):295 데이터 가져오기 오류: SyntaxError: JSON 입력이 예기치 않게 종료되었습니다.
fetchCelebritiesData에서 ((색인):292:33)
비동기식(색인):375:30
fetchCelebritiesData @ (색인):295
fetchCelebritiesData에서 대기(비동기)
(익명)@(색인):375
로드(비동기)
(익명) @ (색인):373</pre>
<p>가능한 문제를 이해하는 데 도움이 필요합니다. PHP 및 JSON 파일과 폴더에 대한 권한을 확인한 결과 모든 것이 괜찮아 보입니다. --6 4 4--</p>
<p>이 오류가 다시 발생했음을 보여주는 로그가 생성되었습니다. </p>
<p><code>[2023년 8월 11일 09:08:58 UTC] PHP 알림: 정의되지 않은 색인: /home/pixellic/public_html/web-applications/celebrities-age-finder/get_secure_data.php의 HTTP_ORIGIN 4행
<p>코딩이 처음입니다. </p>
<p>감사합니다. </p>
<p>php 파일을 이용하여 안전하게 json 데이터를 얻으려고 합니다. </p>
<p>하지만 403 오류가 발생했습니다. </p>