前言:当服务器前端项目请求该服务器后端接口时,可能会遇见跨域问题,需配置解决,常见的有Nginx配置,后端项目中配置,这块使用后端项目配置
创建名为HeaderFilter
的Class文件并将以下代码粘贴进其中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component;
import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletResponse; import java.io.IOException;
@Slf4j @Component @WebFilter(urlPatterns = { "/*" }, filterName = "headerFilter") public class HeaderFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) resp; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization"); response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setCharacterEncoding("UTF-8"); chain.doFilter(request, resp); }
@Override public void init(FilterConfig filterConfig) { log.info("跨域过滤器启动"); }
@Override public void destroy() { log.info("跨域过滤器销毁"); } }
|