JSONP Proxy

간만에 (마음의) 여유가 좀 생겨서 이것저것 하고 놀고 있습니다. 조금 전에는 간단한 JSONP Proxy를 만들어 봤어요. (검색해보니 이미 비슷한게 몇 개 있긴 했지만 그러면 또 뭐 어때요 ㅎㅎ)

JSONP란 XMLHttpRequest의 "same origin policy"라는 보안 정책을 회피하여 다른 사이트와 통신을 할 수 있게 해주는 트릭으로, 야후!나 구글의 Javascript API들이 사용하는 방식입니다. 문제는, 해당 사이트에서 JSONP 형식의 응답을 주어야만 그사이트를 호출할 수 있다는 점인데, 간단한 Proxy를 통해 모든 응답을 JSONP 형식으로 바꿔주게 만들어봤습니다.

http://jania.pe.kr/u/jsonp.cgi?url={url}&callback={callback}&charset={charset}
  • {url} 부분에 원하는 사이트의 주소를 넣으시고(http 포함),
  • {callback} 부분에는 호출이 완료되었을 때 실행될 자바스크립트 함수 이름을 넣고,
  • {charset}은 응답 문자열의 문자셋을 적어주시면 됩니다. 생략하면 utf-8으로 지정됩니다.
예를들어,
  1. function c(json) {
  2.    alert(json.content);
  3. }

  4. var script = document.createElement("SCRIPT");
  5. script.src =
  6.    "http://jania.pe.kr/u/jsonp.cgi?" +
  7.    "url=http://www.google.com&callback=c"
  8. document.body.appendChild(script);
와 같이 쓰시면, 구글 홈페이지의 HTML이 자바스크리트 alert을 통해 화면에 출력됩니다.

이런 작은 장난감들을 몇 개 모아서 Pipe&Filter 방식으로 조합해서 가지고 놀면 재밌는걸 많이 만들 수 있을 것 같아요.

뭘 하고 놀면 재밌을까요? :-)

Bookmark and Share Trackback 0 | Comments 0

< Newer     Older >