重写WebMvcConfigurer实现全局跨域配置
时间: 2024-06-01 11:03:54 浏览: 20
实现全局跨域配置,可以重写WebMvcConfigurer中的addCorsMappings方法,具体代码如下:
```java
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.allowedHeaders("*")
.maxAge(3600);
}
}
```
在以上代码中,我们通过addMapping方法配置了所有请求路径都允许跨域访问,allowedOrigins方法配置了所有来源都允许跨域访问,allowedMethods方法配置了所有请求方法都允许跨域访问,allowedHeaders方法配置了所有请求头都允许跨域访问,maxAge方法配置了预检请求的有效期为3600秒。
相关问题
springboot配置跨域
在 Spring Boot 中进行跨域资源共享 (CORS) 配置的方式有很多种,下面我提供两种常用的方式:
### 方式一:使用 @CrossOrigin 注解
在控制器类或方法上使用 @CrossOrigin 注解即可开启跨域支持。
```java
@RestController
@RequestMapping("/api")
public class ApiController {
@CrossOrigin(origins = "http://localhost:8080")
@GetMapping("/test")
public String test() {
return "Hello World!";
}
}
```
在上面的代码中,@CrossOrigin 注解的 origins 属性指定允许跨域访问的来源,也可以使用通配符 * 表示允许所有来源。
### 方式二:使用 WebMvcConfigurer 配置类
通过 WebMvcConfigurer 配置类可以全局配置跨域支持。具体实现方式如下:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://localhost:8080")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.maxAge(3600);
}
}
```
在上面的代码中,我们创建了一个 WebMvcConfigurer 配置类,并重写了 addCorsMappings() 方法,使用 CorsRegistry 配置跨域支持。addMapping() 方法指定了要支持跨域的 URL 路径,allowedOrigins() 方法指定了允许跨域访问的来源,allowedMethods() 方法指定了允许的 HTTP 请求方法,maxAge() 方法指定了预检请求的有效期限。
springboot static跨域
在Spring Boot中解决静态资源跨域问题有多种方法。一种方法是使用@CrossOrigin注解,但这种方法并不推荐使用。另一种方法是实现WebMvcConfigurer接口,并重写addCorsMappings方法来配置跨域访问。需要注意的是,如果拦截器抛出异常,会导致WebMvcConfigurer全局跨域配置失效。还有一种推荐的方法是使用过滤器来解决跨域问题。通过配置过滤器,可以实现对静态资源地址的映射和拦截指定地址资源。\[2\]所以,你可以根据具体情况选择适合你的方法来解决Spring Boot静态资源跨域问题。
#### 引用[.reference_title]
- *1* [SpringBoot跨域配置](https://blog.csdn.net/weixin_45977186/article/details/123601258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [springboot配置跨域、静态资源地址映射、拦截指定地址资源](https://blog.csdn.net/weixin_43702146/article/details/126764996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]