Ajax로 Cross 도메인간 Json 데이터를 주고 받는 Jsonp 기본 예제
데모 - http://demo.widgets.co.kr/?c=75/95/97
Ajax로 서버에서 데이터를 가져올 때 Json을 많이 사용합니다만, 같은 서버 내에서만 사용할 수 있습니다.
하지만 이녀석은 서로 다른 도메인에서 데이터를 요청하고 받을 수 있습니다.
이름하야 Jsonp입니다.
기본적인 동작은 요청자 - 답변자 사이에 키값을 주고 받아 요청자에게 정확하게 데이터를 주도록 합니다.
물론 보안이나 트레픽 누수에 관련하여 준비된 서비스에서만 사용하셔야합니다.
경우에 따라서는 아무나 막 쓰게 해서는 서버가 뻗어버릴 수도 있습니다.
이건 아무나 막 쓸수록 좋은 쿠폰 발생같은 서비스에 저는 자주 사용했습니다.
아래는 기본 예제 소스입니다.
<!--호출 페이지소스--><script type="text/javascript"><!-- var getJsonp = function(){ var dArray = null; var btn = $(".btn"); btn.click(function(){ $.ajax({ dataType:"jsonp", jsonp:"callback", data:{id : "check", name: "테스트"}, success:function(callback){dArray=callback;},// 상단 선언된 변수에 데이터를 담는다. complete:function(d){ alert(dArray[0].date); alert(dArray[0].id); alert(dArray[0].name); alert(dArray[0].subject); alert(dArray[0].content); }, error:function(d){ alert("error "+d.responseText);} }); return false; }); } $(function(){ getJsonp(); });//--></script><a href="javascript:void(0);" class="btn">테스트</a><!--응답페이지소스--><?//http://demo.widgets.co.kr/_test/jsonp/test20160805.php header('Cache-Control:no-cache'); header('Pragma:no-cache'); header('Content-Type:text/html; charset=utf-8'); echo $callback."("; $rets['date'] = urlencode(date('Y-m-d H:i:s')); $rets['id'] = urlencode($id); $rets['name'] = urlencode($name); $rets['subject'] = urlencode("제목입니다."); $rets['content'] = urlencode("내용입니다."); $return[] = $rets; $return[] = $rets; echo urldecode(json_encode($return)); echo ")";?>
게시판 목록
개발자팁
개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5396 | 기타 |
슈퍼스타맨
|
3개월 전 | 334 | |
| 5395 | PHP |
untitled
|
5개월 전 | 809 | |
| 5394 | MySQL |
선택과집중
|
5개월 전 | 582 | |
| 5393 | 웹서버 |
techstar
|
7개월 전 | 850 | |
| 5392 |
|
1년 전 | 1205 | ||
| 5391 | 9개월 전 | 1108 | |||
| 5390 | 9개월 전 | 893 | |||
| 5389 | 8개월 전 | 864 | |||
| 5388 | 8개월 전 | 965 | |||
| 5387 | 7개월 전 | 798 | |||
| 5386 | JavaScript |
nekoieye
|
7개월 전 | 959 | |
| 5385 | 웹서버 | 7개월 전 | 979 | ||
| 5384 | JavaScript |
|
8개월 전 | 801 | |
| 5383 | 기타 | 9개월 전 | 1116 | ||
| 5382 | 기타 |
|
9개월 전 | 566 | |
| 5381 | JavaScript | 9개월 전 | 895 | ||
| 5380 | 기타 |
|
9개월 전 | 678 | |
| 5379 | JavaScript | 10개월 전 | 681 | ||
| 5378 | 10개월 전 | 1188 | |||
| 5377 | 기타 |
|
10개월 전 | 751 | |
| 5376 | jQuery |
|
10개월 전 | 561 | |
| 5375 | jQuery |
techstar
|
10개월 전 | 718 | |
| 5374 | 기타 |
|
10개월 전 | 765 | |
| 5373 | MySQL |
|
11개월 전 | 799 | |
| 5372 | 기타 |
|
11개월 전 | 1001 | |
| 5371 | JavaScript |
|
11개월 전 | 713 | |
| 5370 | JavaScript |
|
11개월 전 | 718 | |
| 5369 | PHP |
|
11개월 전 | 1232 | |
| 5368 | PHP | 11개월 전 | 1397 | ||
| 5367 | 기타 |
nekoieye
|
1년 전 | 1272 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기