SpringBoot 处理跨域请求,通常是通过配置全局的 CORS(跨源资源共享)策略来实现的。CORS 是一种机制,它使用额外的 HTTP 头部来告诉浏览器,让运行在一个 origin (domain) 上的 web 应用被准许访问来自不同源服务器上的指定的资源。

在 SpringBoot 应用中,可以通过几种方式来实现 CORS 支持:

1. 使用 @CrossOrigin 注解

你可以在你的 Controller 或方法上使用 @CrossOrigin 注解来允许跨域请求。这个注解提供了灵活的配置选项,比如允许哪些域名、HTTP 方法等。

@RestController
@CrossOrigin(origins = "http://example.com")
public class MyController {

    @GetMapping("/greeting")
    public String greeting() {
        return "Hello, World!";
    }
}

或者,只在特定的方法上应用:

@RestController
public class MyController {

    @GetMapping("/greeting")
    @CrossOrigin(origins = "http://example.com")
    public String greeting() {
        return "Hello, World!";
    }
}

2. 自定义 CORS 配置

对于更复杂的 CORS 需求,你可以通过实现 WebMvcConfigurer 接口并覆盖 addCorsMappings 方法来全局配置 CORS。

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
            .allowedOrigins("http://example.com")
            .allowedMethods("GET", "POST", "PUT", "DELETE")
            .allowedHeaders("*")
            .allowCredentials(true);
    }
}

在这个例子中,addMapping("/**") 表示对所有路径都应用 CORS 策略,allowedOrigins 设置了允许访问的源,allowedMethods 设置了允许的 HTTP 方法,allowedHeaders 允许任何头部信息,allowCredentials(true) 表示允许发送 Cookies。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部