티스토리 뷰

ajax에서 외부서버에 접속하려 할 경우에 아래와 같은 메세지를 볼 수가 있다.

XMLHttpRequest cannot load http://xx.xx.xx.xx/xxx.jsp. Request header field Content-Type is not allowed by Access-Control-Allow-Headers.


이는 ajax에서는 내부적으로 같은 도메인의 서버에서만 URL접속을 할 수 있도록 되어 있어서 그런데 이를 해결하기 위해서는 접속하려는 웹서버(여기서는 톰캣)에서 아래와 같이 응답헤더를 설정을 해 주면,

다른 서버에서 접속요청하는 ajax 요청을 처리할 수 있다.


response.addHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Headers", "origin, x-requested-with, content-type, accept");


좀더 자세히 말하면,

우선 Filter를 상속받은 클래스를 하나 정의해서 거기에 위의 코드를 넣는다.

CrossDomainFilter.java


그리고, web.xml 에 위의 필터를 추가하면 끄~읕~!

web.xml

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함