springboot配置跨域
一、 文件名:
CORSFilter
直接代码:
import javax.servlet.Filter;
import javax.servlet.annotation.WebFilter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter(filterName = "CORSFilter", urlPatterns = {"/*"})
public class CORSFilter implements Filter {
@Override
public void destroy() {
System.out.println("CORS FILTER IS DESTROYED!");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
this.addHeaders(resp);
if (req.getMethod().equals("OPTIONS")) {
resp.setStatus(HttpServletResponse.SC_OK);
resp.addHeader("Access-Control-Max-Age", "600");
return;
}
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
System.out.println("CORS FILTER IS INITED!");
}
public static void addHeaders(HttpServletResponse response) {
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Headers", "Origin, x-requested-with, Content-Type, Accept,X-Cookie, Authorization");
response.addHeader("Access-Control-Allow-Credentials", "true");
response.addHeader("Access-Control-Allow-Methods", "GET,POST,PUT,OPTIONS,DELETE");
}
}
二、启动类配置注解
@ServletComponentScan(value = {"com.example.demo.filter"})
com.example.demo.filter为包名,需要根据自己的需要修改