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 来配置跨域设置。

