>  기사  >  백엔드 개발  >  API가 PHP에서 JSONP 및 교차 사이트 요청을 처리하는 방법

API가 PHP에서 JSONP 및 교차 사이트 요청을 처리하는 방법

PHPz
PHPz원래의
2023-06-17 10:37:091296검색

점점 더 많은 웹 애플리케이션이 사이트 간 요청 및 JSONP 기술을 지원하기 시작함에 따라 PHP의 API 디자이너는 이러한 요청을 처리하는 방법을 고려해야 합니다. 이 기사에서는 PHP에서 JSONP 및 크로스 사이트 요청을 처리하는 방법을 살펴보겠습니다.

먼저 JSONP를 살펴보겠습니다. JSONP(JSON with Padding)는 클라이언트와 서버 간 데이터에 대한 도메인 간 요청을 허용하는 기술입니다. 이는 JavaScript 코드를 사용하여 src 속성이 JSONP 응답을 반환하는 API를 가리키는 URL인 3f1c4e4b6b16bbbd69b2ee476dc4f83a 태그를 동적으로 생성함으로써 수행됩니다.

JSONP를 지원하려면 API에 일부 코드를 추가해야 합니다. 먼저 API 요청에 클라이언트에서 실행될 콜백 함수의 이름을 지정하는 "콜백" 매개변수가 포함되어 있는지 확인해야 합니다. 이 매개변수가 존재하는 경우 응답에서 콜백 함수를 사용하여 JSON 응답을 래핑해야 합니다. 이렇게 하면 클라이언트 측 JavaScript 코드가 도메인 간 제한에 대한 걱정 없이 응답을 쉽게 읽고 처리할 수 있습니다.

다음은 JSONP 지원 방법을 보여주는 PHP 샘플 코드입니다.

<?php
$data = array('name' => 'John', 'age' => 30);
$json = json_encode($data);

if(isset($_GET['callback'])){
    echo $_GET['callback'] . '(' . $json . ')';
} else {
    echo $json;
}
?>

위 예에서 API 요청에 "콜백" 매개변수가 포함되어 있으면 JSONP 응답이 반환되고, 그렇지 않으면 JSON 응답이 반환됩니다.

이제 크로스 사이트 요청을 처리하는 방법을 살펴보겠습니다. CORS(Cross-Origin Resource Sharing)는 클라이언트 브라우저와 서버 간의 도메인 간 요청을 허용하는 기술입니다. CORS를 사용하면 클라이언트 측 JavaScript 코드가 프록시 서버나 다른 솔루션 없이도 다른 도메인의 API에서 데이터를 가져오도록 할 수 있습니다.

PHP에서 CORS를 활성화하는 것은 쉽습니다. 응답 헤더에 몇 가지 정보를 추가하기만 하면 됩니다. 예:

<?php
header("Access-Control-Allow-Origin: *"); //允许所有域名
header("Access-Control-Allow-Methods: GET, POST"); //允许的HTTP方法
header("Access-Control-Allow-Headers: Content-Type"); //允许客户端发送的Header
?>

위의 예에서는 응답 헤더에 "Access-Control-Allow-Origin", "Access-Control-Allow-Methods" 및 "Access-Control-Allow-Headers"를 추가하여 CORS를 활성화했습니다. 이러한 방식으로 클라이언트는 모든 도메인 이름에서 데이터를 얻을 수 있으며 HTTP 메서드와 헤더도 제한됩니다.

요약하자면, PHP의 API 디자이너는 클라이언트 측 JavaScript 코드가 다른 도메인 이름에서 데이터를 가져올 수 있도록 JSONP 및 CORS를 지원하는 방법을 고려해야 합니다. JSONP와 CORS는 모두 안전하고 신뢰할 수 있는 사이트 간 요청 방법을 제공하며 클라이언트 코드를 보다 유연하고 개발 및 유지 관리하기 쉽게 만들 수 있습니다.

위 내용은 API가 PHP에서 JSONP 및 교차 사이트 요청을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.