본문 바로가기

AJAX

ajax - jsonp(미투데이 jsonp로 json 데이터 가져오기)

/**

 *  jsonp : 외부에서 데이터를 가져오지 못하는 json의 한계를 커버해주는 형식

 */



jq14.js



$(document).ready(function() {

$("#btn1").click(aa);

$("#btn2").click(bb);

});


function aa() {

$.ajax({

url : "http://192.168.0.191/basicweb2/jq14.jsp",

dataType : "jsonp",

jsonp : "callback", // url로 넘겨주는 변수가 된다.

success : function(data) {

var re = data.datas;

var imsi = "";

$(re).each(function(index, entry) {

imsi = $("<div>" + entry.no + " - " + entry.name + "</div>");

$("#disp").append(imsi);

});

},

error : function(e) {

alert(e.responseText);

}

});

}


function bb() {

var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";

$.getJSON(flickerAPI, {

tags : "mount rainier",

tagmode : "any",

format : "json"

}).done(function(data) {

$.each(data.items, function(i, item) {

$("<img>").attr("src", item.media.m).appendTo("#dispImage");

if (i === 3) {

return false;

}

});

});

}


========================================================================================

jq14_jsonp.html


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

<script type="text/javascript" src="js/jq14.js"></script>

<body>

** 다른 도메인 서버의 자료 읽기 **<br/>

<button id="btn1">연습1</button><br/>

<button id="btn2">연습2</button><br/>

<hr>

<div id="disp"></div>

<div id="dispImage"></div>

</body>

</head>



========================================================================================
========================================================================================

jq15.js( 미투데이 jsonp로 데이터 가져오기)

$(document).ready(function(){

$.ajax("http://me2day.net/api/get_posts/jypnyc.json",{

dataType:"jsonp",

success:function(data){

$.each(data, function(index, item){

var a = $("<b></b><br>").html(item.author.id);

var b = $("<img />").attr("src",item.author.face);

var c = $("<img />").attr("src",item.author.icon);

var d = $("<p></p>").html(item.pubDate);

var e = $("<p></p>").html(item.body);

var f = $("<img />").attr("src",item.media.photoUrl);

$("<div></div>").append(a,b,c,d,e,f).appendTo("#disp");

});

},

error:function(){

alert(e.resposeText);

}

});

});


========================================================================================

jq15_jsonp.html


<!DOCTYPE html>

<html>

<head>

<meta  charset="UTF-8">

<title>Insert title here</title>

<style type="text/css">

*{

margin: 0px;

padding: 0px;

}


div{

margin: 5px;

padding: 10px;

border-style: solid;

border-color: #eeeee;

border-radius: 10px;

}

</style>

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

<script type="text/javascript" src="js/jq15.js"></script>

</head>

<body>

<h1>jsonp 연습(미투데이)</h1>

<div id="disp"></div>

</body>

</html>