이 기사의 내용은 AJAX 크로스 도메인에 대한 자세한 소개(코드 예제)입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
AJAX 크로스 도메인 문제, 일반적으로 사용되는 두 가지 해결 방법이 있습니다. 간단히 기록하고 자세한 내용은 참고 자료를 확인하세요. 다음 예에서는 테스트용으로 www.test.com 및 www.example.com이라는 두 개의 도메인 이름을 만듭니다.
동일 출처 정책
동일 출처 정책은 한 소스에서 로드된 문서나 스크립트가 다른 소스의 리소스와 상호 작용하는 방식을 제한합니다. 이는 잠재적인 악성 파일을 격리하기 위한 중요한 보안 메커니즘입니다.두 페이지, 도메인 이름, 프로토콜, 포트이 모두 동일하다면 소스가 동일하므로 상호 작용에는 문제가 없습니다. 동일 출처 정책은 매우 중요한 보안 메커니즘이지만 때로는 교차 도메인이 필요한 이 메커니즘을 돌파해야 할 때도 있습니다.
JSONP
JSONP는 태그에 도메인 간 제한이 없다는 원칙을 사용하여 구현됩니다. 다음은 www.test.com
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'get', dataType:'jsonp', jsonp: "callback", success:function(data) { console.log(data) } })
에서 JQuery를 사용한 예이다. 다음은 www.example.com
<?php $callback = $_GET['callback']; $name = $_GET['name']; // 处理数据 $data = md5($name); echo $callback . '(' . json_encode($data) . ')';
CORS
CORS(Cross-origin Resource Sharing), cross-origin의 PHP 처리이다. 원본 리소스 공유 표준을 통해 웹 응용 프로그램 서버는 도메인 간 액세스 제어를 수행할 수 있습니다. GET만 지원하는 JSONP에 비해 CORS는 더 많은 HTTP 요청을 지원하고 더 간단하고 안전합니다. 그러나 CORS에는 호환성 문제가 있을 수 있습니다.
다음은 www.test.com에서 AJAX 요청
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'post', dataType:'json', success:function(data) { console.log(data) } });
www.example.com
<?php header("Access-Control-Allow-Origin: http://www.test.com"); $name = $_POST['name']; // 处理数据 $data = md5($name); echo json_encode($data);
위 내용은 AJAX 크로스 도메인에 대한 자세한 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!