spring的解决方式是什么呢
时间: 2023-07-08 19:32:03 浏览: 37
Spring 也提供了一种方便的方式来解决跨域资源共享的安全问题,即通过使用 `@CrossOrigin` 注解或配置 `CorsFilter` 过滤器来实现。
使用 `@CrossOrigin` 注解可以在类级别或方法级别上启用 CORS 支持。例如:
```java
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://example.com", methods = {RequestMethod.GET, RequestMethod.POST})
public class MyController {
// ...
}
```
上面的示例中,`@CrossOrigin` 注解指定了允许来自 `http://example.com` 的跨域请求,且仅允许 `GET` 和 `POST` 方法。
除了使用注解之外,还可以通过配置 `CorsFilter` 过滤器来启用 CORS 支持。例如:
```java
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
```
上面的示例中,`CorsConfig` 类使用 `@Configuration` 注解标记为配置类,定义了一个名为 `corsFilter` 的 Bean,该 Bean 会注册一个 `CorsFilter` 过滤器来启用 CORS 支持。其中,`CorsConfiguration` 对象用于配置允许跨域请求的来源、方法和头部信息等,这里的 `*` 表示允许任意来源、任意头部和任意方法的跨域请求。
需要注意的是,为了避免出现安全问题,应该根据实际需要来配置允许的来源、方法和头部信息等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)