跨域问题解决

344
跨域共有三种解决方案
  1. cors过滤器或者aop
  2. jsonp js不存在跨域问题
  3. 前端使用同域服务器来转发请求接口
java中使用过滤器
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 httpResponse = (HttpServletResponse) servletResponse;
		HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
		httpResponse.addHeader("Access-Control-Allow-Origin", "*");//*表示允许所有域名跨域
		httpResponse.addHeader("Access-Control-Allow-Headers",
				"*");  // 请求头
		httpResponse.addHeader("Access-Control-Allow-Methods",
				"GET,POST,PUT,DELETE"); //允许跨域的Http方法
		httpResponse.addHeader("Access-Control-Max-Age", "3600");
		if ("OPTIONS".equals(httpRequest.getMethod()))
		{
			httpResponse.setStatus(HttpServletResponse.SC_OK);
		}
		filterChain.doFilter(servletRequest, servletResponse);

	}

	@Override public void destroy()
	{

	}
}