Java解决跨域问题(springboot前后端分离)
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
@WebFilter(urlPatterns = {"/*"}, filterName = "ocrsFilter")
public class CorsFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("跨域过滤器");
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.addHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.addHeader("Access-Control-Allow-Methods", "*");
response.addHeader("Access-Control-Allow-Headers", "Content-Type");
//根据自己的token命名修改,如果没有可删掉此条(token名称可在前端请求头中查看)
response.addHeader("Access-Control-Allow-Headers","X-Token");
//TODO 开启 cookie跨域
response.setHeader("Access-Control-Allow-Credentials", "true");
//TODO 有效期30分钟
response.addHeader("Access-Control-Max-Age", "1800");
//response.addHeader("Access-Control-Expose-Headers", "token");
//response.setHeader("token", "111111111111111");
filterChain.doFilter(request, response);
}
}