자바스크립트에서 JSONP를 사용하지 않고 CORS를 활용하는 방법에 대해 알아보세요.
웹 애플리케이션을 개발하다보면 다른 도메인에서 제공하는 데이터에 접근해야하는 경우가 많습니다. 이때, 자바스크립트에서는 보안 상의 이유로 동일 출처 정책(Same-origin policy)에 의해 다른 도메인으로의 데이터 요청이 제한됩니다. 이런 경우, CORS(Cross-Origin Resource Sharing)를 사용하여 다른 도메인과의 데이터 통신을 허용할 수 있습니다.
CORS란?
CORS는 웹 브라우저에서 다른 도메인 간의 자원 공유를 허용하기 위한 메커니즘입니다. 이를 통해 자바스크립트 애플리케이션은 서로 다른 도메인으로부터 리소스를 요청하고 응답받을 수 있습니다. CORS를 사용하려면 서버 측에서 특정 헤더를 설정해야 합니다.
CORS를 사용하여 데이터 요청하기
자바스크립트에서 CORS를 사용하여 다른 도메인으로부터 데이터를 요청하는 방법은 아래와 같습니다.
- XMLHttpRequest 객체를 사용하여 서버에 데이터를 요청합니다.
var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://api.example.com/data', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var data = JSON.parse(xhr.responseText); // 데이터를 사용하는 코드 작성 } }; xhr.send();
- 서버에서는 요청을 받아들이고 응답에 CORS 관련 헤더를 설정합니다. CORS 관련 헤더는 다음과 같습니다.
Access-Control-Allow-Origin: *
위의 헤더는 모든 도메인에서 데이터 요청을 허용하는 의미입니다. 특정 도메인만 데이터 요청을 허용하려면 해당 도메인을 지정하면 됩니다.
- 서버로부터 받은 응답을 자바스크립트에서 사용합니다. 이때, 서버가 허용한 도메인에서만 응답을 받을 수 있습니다.
요약
CORS를 활용하여 자바스크립트에서 다른 도메인으로부터 데이터를 요청하는 방법을 알아보았습니다. CORS를 사용하면 웹 애플리케이션에서 다양한 도메인으로부터 데이터를 효율적으로 가져올 수 있습니다. 주의할 점은 서버 측에서 CORS 관련 헤더를 설정해줘야 한다는 것입니다.