..
CORS (CROSS-ORIGIN RESOURCE SHARING) 서비스가 다른 크로스도메인 해결방법
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Ajax에서 특정 서비스 호출 시 도메인이 서로 다를경우, 정상적인 서비스를 호출하기 위해서는 Spring MVC의 필터링을 이용하여 처리할 수 있다. 


 1. OncePerRequestFilter 를 상속 필터 클레스 구현

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package 패키지명;
 
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.filter.OncePerRequestFilter;
 
public class CorsFilter extends OncePerRequestFilter {
 
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
            throws ServletException, IOException {
        response.addHeader("Access-Control-Allow-Origin""*");
        if (request.getHeader("Access-Control-Request-Method"!= null && "OPTIONS".equals(request.getMethod())); {
            // CORS "pre-flight" request
            response.addHeader("Access-Control-Allow-Methods""GET, POST, PUT, DELETE");
            response.addHeader("Access-Control-Allow-Headers""Authorization");
            response.addHeader("Access-Control-Max-Age""1728000");
        }
        filterChain.doFilter(request, response);
    }
}
cs


2. web.xml에 필터로 설정

 
1
2
3
4
5
6
7
8
<filter>
    <filter-name>corsFilter</filter-name>
    <filter-class>패키지.CorsFilter</filter-class> <!-- 필터위치 -->
</filter>
<filter-mapping>
    <filter-name>corsFilter</filter-name>
    <url-pattern>/data/*</url-pattern> <!-- 서비스할 디렉토리 설정 -->
</filter-mapping>
cs

http://enjoydev.tistory.com/14



'DEV > java' 카테고리의 다른 글

특수문자 변환  (0) 2017.07.13
일정 시간 시행 대기  (0) 2014.03.11
jsp include 수정 후 반영이 안되는 경우  (0) 2013.11.06
  Comments,     Trackbacks