다음과 같은 형식으로 스크립트 태그를 추가한다.
<script>
function f(received_data){
~
}
</script>
<script src="http://example.com/test.json?callback=f"></script>
즉, json URL(항상 .json으로 끝나진 않음) 뒤에 첨자로 callback=[함수이름]와 같이 작성해주면 된다. 그러면 스크립트가 다음과 같은 형식으로 전송된다.
적용 전:
{"data1":"value1", ...} ☜JSON 형식
적용 후:
f({"data1":"value1", ...}); ☜JS 형식
따라서 스크립트를 수신하는 즉시 함수 f가 실행된다.
필자가 JSON 데이터를 보내는 php 페이지를 만들어 시험해본 결과, 이 callback 기능은 서버에서 만들어내는 것으로 보인다. 따라서 브라우저에 상관없이 서버가 이 기능을 지원하면 사용 가능하다. 반대로 말하면, 서버가 이 기능을 지원하지 않는 경우엔 사용할 수 없다는 단점이 있다.
장점으로는 크로스 도메인 문제(Same-Origin Policy)를 해결할 수 있다는 점이 있다.
필자는 이 기능을 이용해 외부 서버에서 JSON 데이터를 수신해 블로거의 단점을 보완하고 있다.
△
페이스북 댓글