springboot 跨域配置代码实现
时间: 2023-06-01 22:03:16 浏览: 140
在SpringBoot中,可以通过添加一些配置代码来实现跨域访问。以下是一个简单的示例:
1. 在SpringBoot应用程序的主类上添加@CrossOrigin注解,以允许来自任何来源的请求:
```java
@CrossOrigin(origins = "*")
@SpringBootApplication
public class MyApp {
// ...
}
```
2. 在Web配置类中添加一个CorsFilter Bean:
```java
@Configuration
public class WebConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
```
该代码将允许来自任何来源的请求,使用任何HTTP方法,并允许包含任何头信息。
3. 在Controller类中添加@CrossOrigin注解,以允许特定的来源:
```java
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://localhost:4200")
public class MyController {
// ...
}
```
在这个示例中,我们只允许来自localhost:4200的请求。
请注意,为了安全起见,最好只允许特定的来源访问您的API。
阅读全文