springmvc使用@CrossOrigin注解解决ajax请求接口跨域问题
springmvc项目中,如一个项目的页面调用另一个项目的接口会产生跨域问题 403。
对于一个接口而言很好解决跨域问题,springmvc中只需要在接口上加一个注解。
@CrossOrigin(origins = {"http://www.jiajiajia.club","http://photo.jiajiajia.club"})
引号之间地址的意思就是 允许该地址中的请求访问该接口。当然了也可以配多个地址,如上。
如果是整个项目都允许访问的话,那最好配置一个过滤器。
/**
* 跨域请求过滤器
* @author xiaoysec
*
*/@Componentpublic class CrosFilter implements Filter { @Override
public void destroy() { // TODO Auto-generated method stub
} @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request; if (httpRequest.getMethod() == "OPTIONS" && httpRequest.getHeader("Origin") != null) {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Access-Control-Allow-Origin", "*");
httpResponse.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE");
httpResponse.setHeader("Access-Control-Max-Age", "3600");
httpResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); // httpResponse.setHeader("","");
// response.setHeader("","");
}
chain.doFilter(request, response);
} @Override
public void init(FilterConfig config) throws ServletException { // TODO Auto-generated method stub
}
}
fixed
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。