Administrator
Administrator
发布于 2026-01-26 / 4 阅读
0
0

跨域

跨域是浏览器的安全策略,为什么需要在后端进行控制

跨域(CORS)确实是浏览器的安全策略,目的是防止恶意网站随意访问其他域的数据。浏览器会在前端请求时自动检查“跨域”规则。

但是否允许跨域访问,最终是由后端服务器决定的。后端通过设置响应头(如 Access-Control-Allow-Origin)告诉浏览器“我允许你跨域访问”。如果后端没有设置这些头,浏览器就会拦截响应,前端拿不到数据。

后端如何做跨域控制

后端在WebConfig里实现org.springframework.web.servlet.config.annotation.WebMvcConfigurer 类,并且重写addCorsMappings 方法,具体代码如下:

    /**
     * 跨域配置
     * 注意:allowedOriginPatterns("*") 和 allowCredentials(true) 不能同时使用
     * 如果需要允许凭证,请将 allowedOriginPatterns("*") 改为具体的域名列表
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                // 允许的源(域名),* 表示允许所有源
                // 生产环境建议指定具体域名,例如:.allowedOriginPatterns("http://localhost:3000", "https://yourdomain.com")
                .allowedOriginPatterns("*")
                // 允许的HTTP方法
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
                // 允许的请求头
                .allowedHeaders("*")
                // 允许暴露的响应头(前端可以访问的响应头)
                .exposedHeaders("*")
                // 预检请求的缓存时间(秒)
                .maxAge(3600);
    }


评论