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는 새 버전으로 업데이트되는 비율이 절망적이고.. 해서 인터넷을 뒤적거려보면 사람들의 고민의 흔적을 찾아볼 수 있다.
위의 자료는 내가 뒤적거려본 것 중에서 가장 깔끔하게 정리된 것이다. 이런 문제로 고민하고 있다면 아마 도움이 될 것이다.
'ETC > Script' 카테고리의 다른 글
모바일기기 접속확인방법 (0) | 2012.04.25 |
---|---|
jQuery.ajax (0) | 2012.04.25 |
Ajax로 다른 도메인의 자료 가져오기2 : JSONP를 사용하는 방법 (0) | 2012.04.25 |
Left, Right (0) | 2012.04.25 |
SNS연동 - 자바스크립트로 간단히 처리 (0) | 2012.04.25 |
Posted by 김준홍 (http://www.Juuun.com)