인터넷의 급속한 발전으로 인해 서로 다른 도메인 이름 간의 데이터 상호 작용이 매우 인기 있는 요구 사항이 되었습니다. 그러나 브라우저의 동일 출처 정책 제한으로 인해 데이터 수집을 완료하려면 도메인 간 요청 프록시를 사용해야 하는 경우가 많습니다. 그리고 전송. 이 기사에서는 PHP가 도메인 간 요청 프록시를 구현하는 방법을 소개합니다.
먼저 도메인 간 요청의 원칙을 명확히 해야 합니다. 브라우저의 동일 출처 정책에서는 AJAX 요청과 현재 페이지가 동일한 도메인에 있어야 하며, 그렇지 않으면 브라우저에 의해 차단됩니다. 도메인 간 요청 프록시는 동일한 도메인에서 AJAX 요청을 시작한 다음 요청 결과를 클라이언트에 반환하여 도메인 간 요청을 구현합니다.
교차 도메인 요청 프록시 구현의 핵심은 PHP 서버를 전송 스테이션으로 사용하는 것입니다. 클라이언트는 요청을 PHP 서버로 보내고, PHP 서버는 타사 API에 프록시로 액세스한 다음 클라이언트에게 결과를 전달합니다. 구체적인 구현 프로세스는 다음과 같습니다.
우리가 액세스하려는 타사 API URL이 http://example.com/api/data.json이라고 가정하고 다음을 수행해야 합니다. http://localhost/proxy.php와 같은 PHP 서버 주소 중 하나로 요청을 전달합니다. 따라서 요청된 URL을 다음과 같은 형식으로 구성해야 합니다.
http://localhost/proxy.php?url=http://example.com/api/data.json
그 중 "url" 매개변수는 "는 요청된 제3자 주소를 나타냅니다.
PHP 서버에서는 클라이언트가 전달한 요청 매개변수를 가져와야 합니다. GET 요청의 경우 $_GET 배열을 사용하여 POST 요청의 경우 $_POST 배열을 사용하여 매개변수를 얻을 수 있습니다.
$request_url = $_GET['url'];
요청 매개변수를 얻은 후 PHP의 컬 라이브러리를 사용하여 요청을 보내고 프록시를 사용하여 타사 API에 액세스합니다. , 요청 결과를 클라이언트에 반환합니다.
//컬 초기화
$curl = 컬_init();
//요청된 URL 설정
curl_setopt($curl, CURLOPT_URL, $request_url)
//요청 보내기
$response = cur_exec($curl); / /컬 핸들 해제
curl_close($curl);
//결과 반환
echo $response;
<?php //获取请求的URL $request_url = $_GET['url']; //初始化curl $curl = curl_init(); //设置请求的URL curl_setopt($curl, CURLOPT_URL, $request_url); //发送请求 $response = curl_exec($curl); //释放curl句柄 curl_close($curl); //返回结果 echo $response; ?>실제 사용 시 다음 사항에도 주의해야 합니다.
위 내용은 PHP가 도메인 간 요청 프록시를 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!