[jQuery] jQuery에서의 JSONP 요청
jQuery를 사용하여 외부 도메인에서 JSONP(JSON with Padding) 요청을 보내는 방법에 대해 알아보겠습니다.
jQuery JSONP란?
JSONP는 브라우저의 Same-Origin Policy로 인해 외부 도메인에서 JSON 데이터를 가져올 때 발생하는 제약을 우회하기 위한 방법입니다. HTML <script>
요소를 이용하여 외부 도메인의 데이터를 가져오는 기법으로, JSON 데이터를 패딩(padding)하여 콜백 함수를 호출하는 방식으로 동작합니다.
jQuery에서 JSONP 요청하기
jQuery를 사용하여 JSONP 요청을 보내려면 $.ajax()
메서드를 사용하면 됩니다.
다음은 jQuery를 사용하여 JSONP 요청을 보내는 예제 코드입니다.
$.ajax({
url: 'http://example.com/api/data.json',
dataType: 'jsonp',
success: function(data) {
console.log('데이터를 성공적으로 가져왔습니다:', data);
},
error: function(xhr, status, error) {
console.error('데이터를 가져오는데 실패했습니다:', error);
}
});
url
속성에는 JSONP를 지원하는 외부 API의 엔드포인트 URL을 설정하고, dataType
속성을 'jsonp'
로 지정하여 JSONP 요청을 보냅니다.
서버에서의 JSONP 응답 구성
외부 서버에서는 JSONP 요청에 대한 응답을 패딩된 JSON 형태로 보내야 합니다.
JSONP 응답은 다음과 유사한 형태를 가지고 있어야 합니다.
callbackFunctionName({ "key": "value" });
callbackFunctionName
은 클라이언트에서 지정한 콜백 함수명입니다. 따라서 실제 서버 응답은 클라이언트에서 지정한 콜백 함수를 호출하면서 데이터를 전달하게 됩니다.
결론
jQuery를 사용하여 JSONP 요청을 보내면, 브라우저가 Same-Origin Policy로 인한 제약을 우회하고 외부 도메인에서 JSON 데이터를 안전하게 가져올 수 있습니다.