addCorsMappings跨域配置不生效
时间: 2024-01-18 16:01:53 浏览: 96
如果你使用的是Spring Boot框架,可以在WebMvcConfigurerAdapter的子类中重写addCorsMappings方法,例如:
```java
@Configuration
public class CorsConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedHeaders("*")
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
.maxAge(3600);
}
}
```
这段代码将允许所有来源(allowedOrigins),所有请求头(allowedHeaders),所有请求方法(allowedMethods),并且缓存预检请求(maxAge)。
如果addCorsMappings方法没有被调用,你可以检查以下几个方面:
1. 检查是否添加了@CrossOrigin注解,如果添加了,它将覆盖addCorsMappings方法的配置。
2. 检查是否添加了@EnableWebMvc注解,如果添加了,它会禁用Spring Boot自动配置的WebMvcConfigurerAdapter。
3. 如果你的应用程序使用了Spring Security,你需要在Security配置中添加以下内容:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and() // 添加这一行
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
```
这将启用Spring Security允许跨域请求。
阅读全文