[자바스크립트][비동기통신] JSONP
류명운
·2016. 8. 11. 01:03
반응형
[자바스크립트][비동기통신] JSONP의 간단한 실습에 대한 포스팅입니다.
1. 개념 및 실습환경
- Ajax로 다른 도메인에 있는 url을 호출하기 위한 편법(?)으로 JSONP를 사용한다.
- 기존에 서버에서 리턴해 주던 {"key1" : "value1", "key2" : "value2"} 이런 식의 JSON 문자열을
- callback({"key1" : "value1", "key2" : "value2"}); 이런식으로 임의의 함수(callback)를 호출해 주는 형식의 문자열로 리턴해 주면 된다.
- 즉, JSONP 로 Ajax 호출을 하기 위해선 아무 url 이나 안되고 callback({"key1" : "value1", "key2" : "value2"}); 요런식으로 함수안에 JSON 문자열이 들어간 형식으로 서버에서 리턴을 해줘야 가능하다.
- 실습 예제코드는 jquery에서 지원하는 Ajax 메서드를 이용하여 JSONP를 사용한다.
2. 클라이언트
3. 웹 서버(jsp)
* JSON 변환용 라이브러리로 Jackson JSON Processor를 사용 하였음.
<%@ page language="java" contentType="text/javascript; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.StringWriter"%> <%@ page import="java.util.HashMap"%> <%@ page import="java.util.Map"%> <%@ page import="org.codehaus.jackson.map.ObjectMapper"%> <% MapdummyData = new HashMap (); dummyData.put("value1", "값1"); dummyData.put("value2", "값2"); dummyData.put("value3", "값3"); dummyData.put("value4", "값4"); StringWriter sw = new StringWriter(); // Jackson JSON Mapper 를 사용해서 Map 을 JSON 문자열로 변환 ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(sw, dummyData); request.setAttribute("sw", sw); %> <%-- ajax 에서 넘겨준 callback 함수 파라메터 가져오기 --%> ${param.callback}(${sw});
반응형
'삶의 늪에 들어 가기 전 > 정리중(미정리)' 카테고리의 다른 글
[자바스크립트] 함수지향 프로그래밍 (0) | 2016.08.12 |
---|---|
[자바스크립트][비동기통신] XMLHttpRequest 이용한 Ajax 실습해보기 (1) | 2016.08.11 |
[자바스크립트][비동기통신] WebSocket (0) | 2016.08.11 |
[참고사이트] SoEn(Software Engineering) - http://soen.kr/ (0) | 2016.08.06 |
[참고사이트] 공감 프로그래머 - http://skillsocius.com/ (0) | 2016.08.06 |