springboot解决跨域问题

因为公司是前后端完全分离  所以就会出现跨域问题   所以就需要后台处理一下 有两种比较好的处理方式 

1  注解处理  spring 自带了一个可以解决跨域问题的注解   @CrossOrigin  但是需要在每个controller里面都写一下

2  还有一种是通过过滤器来处理

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.HttpServletResponse;

import org.springframework.stereotype.Component;

/**
 * 处理跨域问题
 * @author MR.ZHENG
 * @date 2016/08/08
 *
 */
@Component
public class OriginFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE,PUT");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
        chain.doFilter(req, res);
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

}

楼主觉得还是第二种比较好 因为设置了就不用管了aop的思想就完全实现了 第一种虽然也好但是每个controller都需要写
posted @ 2018-09-05 15:37  sysogg  阅读(125)  评论(0编辑  收藏  举报