跨域共有三种解决方案
- cors过滤器或者aop
- jsonp js不存在跨域问题
- 前端使用同域服务器来转发请求接口
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()
{
}
}