Spring Boot 中如何解决跨域问题
在Spring Boot中解决跨域问题,可以通过配置一个拦截器来处理跨域请求。以下是一个简单的配置示例:
- 创建一个CORS配置类:
import org.springframework.context.annotation.Bean;
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 {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 允许跨域的路径
.allowedOrigins("*") // 允许跨域请求的域名
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的请求方法
.allowedHeaders("*") // 允许的请求头
.allowCredentials(true); // 是否允许证书(cookies)
}
};
}
}
这段代码配置了Spring Boot应用的所有路径("/**"
)允许所有来源的跨域请求("*"
),并且允许常见的HTTP方法("GET", "POST", "PUT", "DELETE"
)和所有请求头。
- 如果你使用的是Spring Security,还需要在安全配置中添加CORS支持:
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ... 其他配置 ...
.cors(); // 启用CORS支持
}
}
这样就可以在Spring Boot应用中解决跨域问题了。
评论已关闭