1.10 springboot项目后端设置允许跨域请求
发布人:shili8
发布时间:2025-01-10 10:03
阅读次数:0
**Spring Boot项目后端设置允许跨域请求**
在 Spring Boot项目中,为了方便前端与后端的交互,我们需要配置好跨域请求的设置。跨域请求是指一个域名下的 JavaScript 脚本可以访问另一个域名下的资源,这样就可以实现多个域名之间的通信。
**1. 使用 @CrossOrigin 注解**
最简单的方法就是使用 Spring Boot 提供的 `@CrossOrigin` 注解。这个注解可以在控制器类上使用,来指定哪些域名可以访问该控制器。
java// MyController.javaimport org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController@CrossOrigin(origins = " // 允许来自 的跨域请求public class MyController { @GetMapping("/hello") public String hello() { return "Hello, World!"; } }
在上面的例子中,我们使用 `@CrossOrigin` 注解,指定了允许来自 ` 的跨域请求。
**2. 使用 WebMvcConfigurer 接口**
如果你需要更灵活的跨域设置,可以使用 Spring Boot 提供的 `WebMvcConfigurer` 接口。这个接口提供了一个 `addCorsMappings` 方法,用于添加跨域映射。
java// MyConfig.javaimport org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configurationpublic class MyConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { // 允许来自任意域名的跨域请求 registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("*"); } }
在上面的例子中,我们实现了 `WebMvcConfigurer` 接口,添加了一个跨域映射。这个映射允许来自任意域名的跨域请求。
**3. 使用 Spring Security**
如果你使用 Spring Security 来保护你的应用程序,可以使用 `CorsConfigurationSource` 类来配置跨域设置。
java// MyConfig.javaimport org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.CorsConfigurer; import org.springframework.security.config.annotation.web.configuration.CorsRegistry; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; @Configurationpublic class MyConfig implements CorsConfigurer { @Bean public UrlBasedCorsConfigurationSource corsConfigurationSource() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins("*"); configuration.setAllowedMethods("*"); configuration.setMaxAge(3600L); source.registerCorsConfiguration("/**", configuration); return source; } }
在上面的例子中,我们使用 `CorsConfigurer` 接口来配置跨域设置。这个设置允许来自任意域名的跨域请求。
**总结**
在 Spring Boot项目中,为了方便前端与后端的交互,我们需要配置好跨域请求的设置。上面的例子展示了如何使用 `@CrossOrigin` 注解、`WebMvcConfigurer` 接口和 Spring Security 来配置跨域设置。