헤더 기능으로 JSON 응답 헤더를 설정하고 AJAX 호출로 데이터를 반환하는 방법은 무엇입니까?
웹 개발에서는 특히 AJAX 호출을 사용할 때 데이터를 반환 할 때 프론트 엔드와의 비동기 요청 데이터 상호 작용을 처리해야합니다. 브라우저가 반환 된 데이터 형식을 올바르게 처리 할 수 있도록 올바른 응답 헤더 정보를 설정해야합니다. 우리가 반환하는 데이터가 JSON 형식으로 사용하려면 PHP는 HTTP 응답 헤더를 설정하기 위해 헤더 () 함수를 제공합니다. 이 기사에서는 Header () 함수를 사용하여 JSON 응답 헤더를 설정하고 AJAX로 JSON 데이터를 반환하는 방법을 설명합니다.
JSON 형식 데이터를 클라이언트에 반환하려면 먼저 HTTP 응답 헤더에서 컨텐츠 유형이 올바르게 Application/JSON 으로 설정되어 있는지 확인하십시오. 이런 식으로 브라우저는 HTML 또는 기타 형식이 아닌 JSON 형식의 데이터를 수신한다는 것을 알게됩니다.
<?php
// 응답 헤더를 설정하십시오,반환 데이터 유형을 AS로 지정하십시오 JSON
header('Content-Type: application/json');
// 연관 배열을 만듭니다,반환 할 데이터를 나타냅니다
$response = array(
'status' => 'success',
'message' => 'Data has been successfully processed.'
);
// 사용 json_encode() 함수는 배열을 변환합니다 JSON 체재
echo json_encode($response);
?>
올바른 JSON 응답 헤더가 설정되면 AJAX 호출을 통해 반환 된 JSON 데이터를 얻을 수 있습니다. 프론트 엔드가 JavaScript의 fetch () 함수 또는 jQuery의 $ .ajax ()를 사용하여 요청을 보내고 데이터를 수신한다고 가정합니다. 다음은 Fetch ()을 사용하여 요청을 보내고 JSON 응답을 처리하는 예입니다.
fetch('http://m66.net/api/data.php', {
method: 'GET'
})
.then(response => response.json()) // 분석 JSON 데이터
.then(data => {
console.log(data); // 在控制台输出返回的데이터
})
.catch(error => console.error('Error:', error));
$.ajax({
url: 'http://m66.net/api/data.php',
type: 'GET',
dataType: 'json', // 指定返回的데이터类型为 JSON
success: function(data) {
console.log(data); // 在控制台输出返回的데이터
},
error: function(xhr, status, error) {
console.error('Error:', error);
}
});
다음은 Header () 함수를 사용하여 JSON 응답 헤더를 설정하는 방법을 보여주는 완전한 PHP 및 AJAX 예입니다.
<?php
// 응답 헤더를 설정하십시오,반환 데이터 유형을 AS로 지정하십시오 JSON
header('Content-Type: application/json');
// 연관 배열을 만듭니다,반환 할 데이터를 나타냅니다
$response = array(
'status' => 'success',
'message' => 'Data has been successfully processed.',
'data' => array('item1', 'item2', 'item3')
);
// 사용 json_encode() 함수는 배열을 변환합니다 JSON 체재
echo json_encode($response);
?>
fetch('http://m66.net/api/data.php', {
method: 'GET'
})
.then(response => response.json()) // 분석 JSON 데이터
.then(data => {
console.log(data); // 在控制台输出返回的데이터
})
.catch(error => console.error('Error:', error));
JSON이 올바르게 형식화되어 있는지 확인하십시오 . PHP에서 반환 된 데이터는 유효한 JSON 형식이어야합니다. JSON_ENCODE () 함수를 사용하여 PHP 배열을 JSON 형식의 문자열로 변환 할 수 있습니다.
CORS 문제 : 프론트 엔드와 백엔드가 동일한 도메인 이름 아래에 있지 않은 경우 CORS (Cross-Domain Resource Sharing)가 발생할 수 있습니다. Cross-Domain 요청을 허용하려면 PHP에서 액세스-제어-홀로-오리핀 응답 헤더를 설정해야합니다.
header('Access-Control-Allow-Origin: *');
이를 통해 도메인 요청이 API에 액세스 할 수 있습니다.
오류 처리 : JSON 응답을 처리 할 때 프런트 엔드가 HTTP 상태 코드가 200이 아닌 경우와 같이 반환 된 오류 정보를 올바르게 처리 할 수 있는지 확인하십시오.
올바른 응답 헤더를 설정하고 AJAX를 사용하여 전면과 후면 사이에 JSON 데이터를 효율적으로 전달할 수 있습니다.