프로그래밍/Jquery

Jquery -$ajax 크로스 도메인 문제 해결 방법

가카리 2014. 12. 29. 08:15
반응형

jax를 사용하다보면 외부 서버에 요청을 할 경우가 있다.

외부서버에 ajax호출을 하면 크로스 도메인 문제가 생긴다.

해결하는 방법은 아래와 같다.

  • Proxy Server 이용
    클라이언트에서 로컬서버로 호출 후 로컬서버에서 외부서버로 호출 하는 방식이다.

  • 스크립트로 호출
    서버쪽 언어로 데이터 처리를 하고 스크립트로 응답한다.
    클라이언트는 해당 파일을 스크립트로 로드하여 사용한다.

  • response시 도메인 허용
    response header에 Access-Control-Allow-Origin속성을 추가하여 해당 도메인은 크로스도메인에 걸리지 않게 한다.
    예)node.js 에 express사용할 경우
    app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
    });

  • jsonp로 호출
    ajax호출시 return data type을 jsonp로 하고 response때 jsonp형식으로 내려준다.
    get으로만 호출 가능.
    예)jquery사용할 경우
    $.ajax({
        url:'[url]',
        dataType:'jsonp'
    });

출처 : http://vaanxii.tistory.com/archive/201207

반응형