当前位置:实例文章 » JAVA Web实例» [文章]1.10 springboot项目后端设置允许跨域请求

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

其他信息

其他资源

Top