跨域问题解决方案
1 import org.springframework.core.annotation.Order; 2 import org.springframework.stereotype.Component; 3 import org.springframework.web.filter.OncePerRequestFilter; 4 import javax.servlet.FilterChain; 5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebFilter; 7 import javax.servlet.annotation.WebInitParam; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 import java.io.IOException; 11 12 /** 13 * CorsFilter class 14 * @Date Created in 2021-02-08 14:12 15 * @Version 1.0.0 16 **/ 17 18 @Component 19 @Order(1) 20 @WebFilter( 21 filterName = "corsFilter", 22 urlPatterns = "/*", 23 initParams = { 24 @WebInitParam(name = "URL", value = "http://ip:port")//此处的ip port指的是服务端的 25 }) 26 public class CorsFilter extends OncePerRequestFilter { 27 28 29 @Override 30 protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { 31 //这个值ajax请求都会带上,值为前端页面部署的ip+port 32 String origin = request.getHeader("Origin"); 33 response.setHeader("Access-Control-Allow-Origin",origin); 34 response.setHeader("Access-Control-Allow-Headers","Content-Type,Access-Control-Allow-Origin"); 35 response.setHeader("Access-Control-Allow-Credentials","true"); 36 response.setHeader("Access-Control-Allow-Methods","GET,POST,OPTIONS,DELETE,HEAD"); 37 response.setHeader("Access-Control-Max-Age","3600"); 38 filterChain.doFilter(request,response); 39 } 40 }
String origin = request.getHeader("Origin");
response.setHeader("Access-Control-Allow-Origin",origin);
这个Origin前端会进行赋值传到后端我们取到ip再塞回去就ok了
重点在于这两段代码
本文作者:zydjjcpdszylddpll
本文链接:https://www.cnblogs.com/jyfs/p/14388719.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步