SpringBoot解决跨域问题
时间: 2023-12-01 18:39:32 浏览: 78
SpringBoot可以采用多种方式解决跨域问题,其中包括在类或方法上添加@CrossOrigin注解和全局配置。全局配置需要添加自定义类实现WebMvcConfigurer接口,然后实现接口中的addCorsMappings方法。在addCorsMappings方法中,可以使用addMapping来表示对哪种格式的请求路径进行跨域处理,使用allowedHeaders来表示允许的请求头,默认允许所有的请求头信息,使用allowedMethods来表示允许的请求方法,默认是GET、POST和HEAD,这里配置为*表示支持所有的请求方法,使用maxAge来表示探测请求的有效期,使用allowedOrigins来表示支持的域。
相关问题
springboot解决跨域问题
Spring Boot可以通过添加CORS(跨域资源共享)配置来解决跨域问题。以下是一些解决跨域问题的方法:
1. 添加CORS配置类
可以创建一个CORS配置类,使用@CrossOrigin注解来指定允许跨域的源和方法。例如:
@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(360);
}
};
}
}
2. 使用Spring Boot提供的注解
可以在Controller类或方法上使用@CrossOrigin注解来指定允许跨域的源和方法。例如:
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE, RequestMethod.OPTIONS})
public class ApiController {
@GetMapping("/users")
public List<User> getUsers() {
// ...
}
// ...
}
以上是两种常见的解决跨域问题的方法,可以根据实际情况选择适合自己的方式。
springboot解决跨域问题怎么配置
SpringBoot可通过使用Filter来解决跨域问题,只需要在SpringBoot的配置类中添加如下代码即可:FilterRegistrationBean<CorsFilter> registrationBean = new FilterRegistrationBean<>(); registrationBean.setFilter(new CorsFilter(corsConfigurationSource)); registrationBean.setOrder(0); registrationBean.setName("CorsFilter"); registrationBean.addUrlPatterns("/*"); return registrationBean;
阅读全文