Spring Boot前后端分离跨域问题

在SpringBoot+Spring Security的服务器端加入如下代码,已解决跨域带来的问题

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

import javax.servlet.http.HttpServletResponse;


import org.springframework.context.annotation.Configuration;

import org.springframework.core.Ordered;

import org.springframework.core.annotation.Order;


@Order(Ordered.HIGHEST_PRECEDENCE)

@Configuration

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 {

        HttpServletRequest request = (HttpServletRequest) servletRequest;

        HttpServletResponse response = (HttpServletResponse) servletResponse;

        response.setHeader("Access-Control-Allow-Origin","*");

        response.setHeader("Access-Control-Allow-Credentials","true");

        response.setHeader("Access-Control-Allow-Methods","POST,GET,OPTIONS,PUT,DELETE,PATCH,HEAD");

        response.setHeader("Access-Control-Allow-Max-Age","3600");

        response.setHeader("Access-Control-Allow-Headers","*");

        if("OPTIONS".equalsIgnoreCase(request.getMethod())){

            response.setStatus(HttpServletResponse.SC_OK);

        }else{

            filterChain.doFilter(servletRequest,servletResponse);

        }

    }


    @Override

    public void destroy() {


    }

}

猜你喜欢

转载自www.cnblogs.com/siodoon/p/11785554.html