2016년 5월 25일 수요일

Cross Domain 문제 해결법 (jsonp, cors )

  • 문제상황: Cross Domain
    • Cross Domain문제란?
    • ajax호출을 통해 다른 도메인에 있는 자원에 접근할 때
      다른 도메인에 존재하는 데이터를 가져오는 경우, 자바스크립트가 있는 서버가 아닌 다른 서버와 통신하면 보안이슈에 의해서 통신할 수 없음. ( mash up application개발시에 주로 발생) 
  • 해결방법
    1. Server Proxy
      • 웹 브라우저에서 보여지고 있는 문서와 동일한 origin에 proxy를 두고, 다른 origin의 데이터를 가져옴. 
    2. Cross Document Messaging
      • 페이지간 커뮤니케이션 지원하는 API
    3. JSONP
      • html에 script src를 추가하여, 필요한 자원을 로드하듯이, 필요한 페이지 주소를 cript사이에 넣음
      • 예)
        <script> function test(data) {
                     console.log(data); //log로 데이터 출력됨
        }
        </script>

        <script src="http://google.co.kr/example/api/getSearchPages/news.json?callback=test"></script>
      • 한계점: HTTP METHOD:GET만 가능
    4. CORS
      • cors.js를 이용하여 요청
      • response.setHeader("Access-Control-Allow-Origin","*");
  • 참고
    • https://www.w3.org/TR/cors/
    • https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

댓글 없음:

댓글 쓰기