Ajax로 자료를 가져올 때, 다른 도메인으로 요청을 보내면 보안 오류를 띄우면서 잘 안된다. 브라우저의 SOP(Same-Origin Policy) 때문인데, 같은 프로토콜, 같은 도메인, 같은 포트에서의 요청이 아니면 XHR(XMLHttpRequest)등으로 접근할 수 없도록 되어있다.

어쨌든 이런 경우가 필요하게 되자, W3C에서도 Cross-Origin Resource Sharing에 대한 표준을 만들어 뒀다. (참조 : Cross-Origin Resource Sharing(W3C))
Resource를 제공하는 측에서 어떤 도메인에서의 접근을 허용할 지 명시할 수 있고, 인증정보에 따라서도 처리할 수 있다. 만약 모든 도메인에서의 원격 접근을 허용하겠다면 HTTP헤더에 이 한줄만 추가해주면 된다.

Access-Control-Allow-Origin: *

XHR Level2가 구현된 최신 웹브라우저(Firefox 3.5, Safari 4, Chrome 2 이상)에서는 사용이 가능하지만, IE는 안된다!!! 대신 IE8에서는 XDomainRequest 라는 별도의 개체로 CORS를 사용할 수 있다.
하지만 최신 브라우저만을 상대로 장사를 할 수도 없는 노릇이고, 특히 IE는 새 버전으로 업데이트되는 비율이 절망적이고.. 해서 인터넷을 뒤적거려보면 사람들의 고민의 흔적을 찾아볼 수 있다.


위의 자료는 내가 뒤적거려본 것 중에서 가장 깔끔하게 정리된 것이다. 이런 문제로 고민하고 있다면 아마 도움이 될 것이다.


출처 : http://blog.jhoney.net/411

Posted by 김준홍 (http://www.Juuun.com)