跨域及解决跨域

什么是跨域

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

解决

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() {}
}
相关推荐
loserwang4 分钟前
拆解 NIO 核心:脱离 Selector 视角,详解 Channel、Buffer 与 Netty 的进阶优化
java
zihan032120 分钟前
若依(RuoYi)框架升级适配 JDK 21 和 SpringBoot 3.5.10
java·spring boot·spring·若依·若依升级jdk21
Drifter_yh26 分钟前
「JVM」 并发编程基石:Java 内存模型(JMM)与 Synchronized 锁升级原理
java·开发语言·jvm
Seven9728 分钟前
CompletableFuture深度解析:异步编程与任务编排的实现
java
kyrie学java29 分钟前
SpringBoot搭建项目调试与问题解决
java·spring boot·后端
SimonKing32 分钟前
多数据源:CSV、内存对象可以通过SQL查询,甚至联查,你敢信!
java·后端·程序员
毕设源码-钟学长37 分钟前
【开题答辩全过程】以 高校疫情管理系统为例,包含答辩的问题和答案
java
cqbzcsq41 分钟前
MC Forge1.20.1 mod开发学习笔记(数据生成、食物)
java·笔记·学习·mc
Hx_Ma161 小时前
mybatis练习2
java·数据库·mybatis