跨域及解决跨域

什么是跨域

前端与后端不在同一个域名下:

解决

java 复制代码
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;

import java.io.IOException;

@Component
public class CorsFilter implements Filter {
	//这里具体设置什么需要根据实际情况
    private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, token";

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {}

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;

        // 设置CORS头
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", ALLOWED_HEADERS);

        if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            response.setStatus(HttpServletResponse.SC_OK);
        } else {
            chain.doFilter(req, res);
        }
    }

    @Override
    public void destroy() {}
}
相关推荐
重庆小透明几秒前
【搞定面试之mysql】第三篇 mysql的锁
java·后端·mysql·面试·职场和发展
RuoyiOffice9 分钟前
企业请假销假系统设计实战:一张表、一套流程、两段生命周期——BPM节点驱动的表单变形术
java·spring·uni-app·vue·产品运营·ruoyi·anti-design-vue
鹤旗10 分钟前
While语句,do-while语句,for语句
java·jvm·算法
小碗羊肉20 分钟前
【从零开始学Java | 第十八篇】BigInteger
java·开发语言·新手入门
sky wide30 分钟前
[特殊字符] Docker Swarm 集群搭建指南
java·docker·容器
wuqingshun31415935 分钟前
谈谈你对springAop动态代理的理解?
java·jvm
执笔画流年呀36 分钟前
PriorityQueue(堆)续集
java·开发语言
武超杰1 小时前
Spring Boot入门教程
java·spring boot·后端
左左右右左右摇晃1 小时前
JDK 1.7 ConcurrentHashMap——分段锁
java·开发语言·笔记
是小蟹呀^1 小时前
Java抽象类详解:从入门到精通
java·抽象类