php-cors-issue

2018-08-22
old-posts

CORS 이슈

A 사이트에서 B 사이트로 ajax 요청이 필요한 이슈가 발생했다.
최초에는 iframe 을 생각했으나, 좋지 못한 방법이라고 생각했고.
그 다음에는 어렴풋이 알고 있던 “jquery ajax jsonp” 요청이었다.
Cross Domain 이슈가 있는경우에 사용하면 되겠거니~하는 정도의 지식이었고,
다시 jquery 공식 문서 페이지를 통해 ajax options에
jsonp 또는 dataType에 jsonp를 설정하면 될것으로 알고 있었다.

바로 해봤더니 안되었다.
그래서 이래저래 찾아보니 CORS이슈를 해결하기 위해 preflight 요청이란게 있었다.
이해한것을 간단하게 정리해보자면,
ajax 요청을 하기전에 HTTP OPTIONS METHOD를 통해
사전에 타 사이트에서 허용하는 정보들을 받아와서
해당 정보를 바탕으로 ajax 요청을 하는것이었다.
복잡했다.

더 간단한건 없을까 찾아봤더니 아래와 같이 백엔드단(php)에서
처리가 가능한것 같았다.

1
header('Access-Control-Allow-Origin: http://example.com');

만 추가해주면 된다!! 오오 유레카!!
애스테리크(*)는 안되더라…;;

추가: request, response 하는 두 사이트 protocol이 동일해야한다.(흠…기본적인건가? ㅡ.,ㅡ;;)

  1. http => http (O)
  2. https => https (O)
  3. http => https (X)
  4. https => http (X)