SpringBoot解决有关前后端分离跨域问题

说起跨域说实话网上有很多的方式,有些是前端通过jsonp来解决问题,现在我们用后台java的格式来书写跨域中遇到的问题。

我们遇到这样的问题一般写一个跨域 过滤器来解决这样的问题:

/**
 * 跨域过滤器
 */
@Component
public class CorsControllerFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
        HttpServletResponse res = (HttpServletResponse) httpServletResponse;
        res.setContentType("text/html;charset=UTF-8");
//        //本地配置
//        res.setHeader("Access-Control-Allow-Origin","*");
        //服务器配置
        res.setHeader("Access-Control-Allow-Origin", "*"); //* 代表所有的服务器,如果需要可以改成自己的服务器ip地址
        res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE ,PUT");
       //在这里放开所以的请求头,如果不需要那么可以解封下面的 
        res.setHeader("Access-Control-Allow-Headers","*");

//        res.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, " +
//                "X-Requested-With, If-Modified-Since,"
//                + " Pragma, Last-Modified, Cache-Control, Expires, Content-Type, ssoUserToken, "
//                + "X-E4M-With,userId,token,Authorization,deviceId,Access-Control-Allow-Origin,"
//                + "Access-Control-Allow-Headers,Access-Control-Allow-Methods");
        
        res.setHeader("Access-Control-Allow-Credentials", "true");
        filterChain.doFilter(httpServletRequest, httpServletResponse);
    }
}

上述的问题应该可以解决你所遇见的问题。

猜你喜欢

转载自blog.csdn.net/qq_36423978/article/details/82378349