Jsonp(JSON with Padding)는 json의 "사용 모드"로, 웹 페이지가 다른 도메인 이름(웹 사이트)에서 데이터를 가져올 수 있습니다. 즉, 도메인 전체에서 데이터를 읽을 수 있습니다.
다른 도메인(웹사이트)의 데이터에 액세스하려면 왜 특수 기술(JSONP)이 필요한가요? 이는 동일 출처 정책 때문입니다.
동일 출처 정책은 Netscape에서 제안한 잘 알려진 보안 정책입니다. 이제 JavaScript를 지원하는 모든 브라우저가 이 정책을 사용합니다.
우선, jsonp는 json이 도메인을 교차하는 데 사용하는 도구입니다.
스크립트 태그의 크로스 도메인 기능을 통해 동일 출처 정책을 우회하는 것이 원칙입니다.
테스트 및 실험:
발신자:
$.ajax({ type : "post", url : "ajax.php", dataType : "jsonp", jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback) jsonpCallback:"jsonpcallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名 success : function(json){ alert('success'); }, error:function(){ alert('fail'); } });
서버측(php):
<?php $data = "aaa"; $callback = $_GET['callback']; echo $callback.'('.json_encode($data).')'; exit; ?>