spring cross-domain filter
Access-Control-Allow-Origin 이놈이 뭐시기 뭐시기 그러면서 오류가 나온다면 99% cross domain 문제라고 보고...
stackoverflow에 검색하면 나오는 내용인데 양키놈이 시키는대로 하니까 안되는구만
내가 뭘 잘 못 한건지 모르겠다
Interceptor를 등록해서 사용하는 방식도 있고 Filter를 사용하는 방식도 있지만
일단 Filter를 이용해서 web.xml에 클래스를 직접 지정해서 사용하는 방식으로 GOGO
우선 Filter class를 만들고
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 MyFilter extends OncePerRequestFilter {
private static final Logger logger = LoggerFactory.getLogger(BigDipperFilter.class);
@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", "X-Requested-With,Origin,Content-Type, Accept");
}
filterChain.doFilter(request, response);
}
}
/WEB-INF/web.xml 에 등록
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>your.package.url.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
테스트 결과 아주 잘 돌아감!
안된다고 우기지 말고~!