구글광고_헤더쪽


[Ajax/js] CORS (Cross-Origin Resource Sharing) 하는 방법 by 박모

CORS (Cross-Origin Resource Sharing) 하는 방법
참조URL: http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html

 본래 http->https로 iframe에서 통신을 할때 도메인이 다를경우 Cookie나 Header
정보들이 처리가 안되게 된다. 이를 지원하게 하기 위한 방법이 CORS이다.

1. 서버측 처리
1) Access-Control-Allow-Credentials: true
 - 클라보고 Header나 Cookie등 믿고 보내라고 하는 뜻

2) Access-Control-Allow-Origin: * 로 하면안됨.
  가급적 Origin (Referer가 아닌 Origin을 봐야할듯) 쪽에 있는 애를 저기에
 동적으로 넣어줘야하지 않을까 싶음.
 서버에서 Access-Control-Allow-Origin:를 요청한 패킷의 Origin을 보고 해당
  Origin값으로 내려줘야한다.

3) Access-Control-Max-Age: 86400
 이걸해야 OPTIONS를 해당 초동안 안올린다. (86400 = 하루로 해놔봤음)
 이걸 안내려주면 계속 OPTIONS를 때려댄다.

4) Access-Control-Allow-Methods: POST
 - 굳이 안해줘도 된다.

2. 클라(웹브라우저/js) 측 처리
1) js에서는 호출전에 다음과 같은 작업을 해야한다.
 - 필수로 넣어야한다.  (open하고 send사이에 있어야함)
  http_request.withCredentials = "true";

2) 요청시에 클라이언트는 Content-Type 를 text/plain으로 해서 요청해야함.
 - 사실 이건 지키지 않아도 정상 동작 하는 듯 하다.
 - 이런식==> http_request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");

꼭 해야하는건, 1.서버측의 1),2),3) 과 2.의 1) 이다.


핑백

  • 스크랩북 : XMLHttpRequest Level 2 (XHR2) 2012-03-31 12:06:18 #

    ... . 암튼, CORS 방법에 대해서는 다음 블로그에 잘 나와있으니 참고 바랍니다.http://parkmo.egloos.com/4155695 발빠르게 HTML5 지원 브라우저들에서 드래그드랍 파일 업로더를 만드는 ... more





구글광고_사이드

Analytics