PHP에서 JSONP 출력하기
1. 개요
JSONP란 외부서버에 있는 정보를 자바스크립트로 통신하기 위한 기술이다. 일반적으로 웹상에서 다른 도메인간 통신을 할 때 크로스 도메인 보안 정책 제약 때문에 다른 도메인간 통신이 불가능 하지만 JSONP를 이용하면 통신이 가능하다.
2. 구현방법
//----- jsondata.php
<?
// 언어 인코딩 설정
header("Content-type:text/javascript; charset=EUC-KR");
/**
* urlencode 한글 깨짐방지 인코딩
**/
$urluploader = "이미지 경로";
$data = array(
array( "no"=>"Brett", "name"=>urlencode("김길동"), "image"=>$urluploader."img1.jpg"),
array( "no"=>"Jason", "name"=>urlencode("Hunter"), "image"=>$urluploader."img2.jpg"),
array( "no"=>"Elliotte", "name"=>urlencode("Harold"), "image"=>$urluploader."img3.jpg"),
array( "no"=>"Tad", "name"=>urlencode("Williams"), "image"=>$urluploader."img4.jpg"),
array( "no"=>"Author", "name"=>urlencode("Williams"), "image"=>$urluploader."img5.jpg"),
array( "no"=>"Aron", "name"=>urlencode("Williams"), "image"=>$urluploader."img6.jpg"),
array( "no"=>"Mont", "name"=>urlencode("Williams"), "image"=>$urluploader."img7.jpg"),
array( "no"=>"Gagoil", "name"=>urlencode("Williams"), "image"=>$urluploader."img8.jpg"),
array( "no"=>"Frank", "name"=>urlencode("lastName"), "image"=>$urluploader."img9.jpg")
);
/**
* urldecode 인코딩된 정보를 디코딩
**/
$stringJSON = json_encode($data);
//헤더에 콜백을 붙여 줘서 크로스 도메인 문제 해결
echo $_REQUEST["callback"];
echo "(";
echo urldecode($stringJSON);
echo ")";
?>
//----- output
({"users":[
{"no":"Brett","name":"김길동","image":"도메인주소/senchaTouch2/img/img1.jpg"},
{"no":"Jason","name":"Hunter","image":"도메인주소/senchaTouch2/img/img2.jpg"},
{"no":"Elliotte","name":"Harold","image":"도메인주소/senchaTouch2/img/img3.jpg"},
{"no":"Tad","name":"Williams","image":"도메인주소/senchaTouch2/img/img4.jpg"},
{"no":"Author","name":"Williams","image":"도메인주소/senchaTouch2/img/img5.jpg"},
{"no":"Aron","name":"Williams","image":"도메인주소/senchaTouch2/img/img6.jpg"},
{"no":"Mont","name":"Williams","image":"도메인주소/senchaTouch2/img/img7.jpg"},
{"no":"Gagoil","name":"Williams","image":"도메인주소/senchaTouch2/img/img8.jpg"},
{"no":"Frank","name":"lastName","image":"도메인주소/senchaTouch2/img/img9.jpg"}
]})