CORS를 사용하여 JavaWeb 도메인 간 요청 문제를 해결하는 방법

이전에 jsonp로 크로스 필드 문제를 해결했는데, 지금은 CORS로 크로스 필드 요청을 통해 자바 크로스 필드 문제를 해결합니다.
기본 코드는 다음과 같습니다.

package com.hy.fliter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.HttpStatus;
/**
* Created by WangShuai on 2016/7/30.
*/
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException { }
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpServletRequest request = (HttpServletRequest) servletRequest;
//  
response.setHeader("Access-Control-Allow-Origin", "*");
//  
response.setHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, OPTIONS, DELETE");
//  
response.setHeader("Access-Control-Allow-Headers", "Content-Type, x-requested-with, X-Custom-Header, HaiYi-Access-Token");
if ("OPTIONS".equals(request.getMethod())){
response.setStatus(HttpStatus.SC_NO_CONTENT);
}
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() { }
}
web.xml 코드는 다음과 같습니다.

<filter>
<filter-name>cors</filter-name>
<filter-class>com.hy.fliter.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cors</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
위에서 말한 것은 여러분에게 소개된CORS를 이용하여 자바 웹의 크로스 도메인 요청 문제를 실현하는 방법입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 회답할 것입니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기