在Spring Boot中,CORS(跨域资源共享)是一种允许来自不同源的Web应用程序之间共享资源的机制。为了在Spring Boot应用程序中实现CORS,你可以使用以下几种方法:
在Spring Boot中,你可以通过实现WebMvcConfigurer
接口来配置全局CORS。首先,创建一个新的配置类,然后实现addCorsMappings
方法来定义允许的跨域请求。例如:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 允许跨域请求访问所有路径
.allowedOrigins("*") // 允许来自任何源的请求
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许的HTTP方法
.allowedHeaders("*") // 允许的请求头
.allowCredentials(true) // 是否发送Cookie
.maxAge(3600); // 预检请求的有效时间(秒)
}
}
@CrossOrigin
注解你还可以在控制器类或方法上使用@CrossOrigin
注解来定义允许的跨域请求。例如:
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@CrossOrigin(origins = "*", allowedMethods = {"GET", "POST"}, allowedHeaders = "*", allowCredentials = "true")
public class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
}
CorsConfigurationSource
在Spring Boot中,你还可以通过配置CorsConfigurationSource
来定义允许的跨域请求。例如:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowedOrigins(Arrays.asList("*"));
config.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS"));
config.setAllowedHeaders(Arrays.asList("*"));
config.setAllowCredentials(true);
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
这些方法都可以帮助你在Spring Boot应用程序中实现CORS跨域资源共享。你可以根据自己的需求选择合适的方法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。