SpringBoot怎么设置Access-Control-Allow-Origin响应头
时间: 2023-11-25 08:51:48 浏览: 35
可以通过在Spring Boot应用程序中添加一个过滤器来设置Access-Control-Allow-Origin响应头。具体步骤如下:
1.创建一个名为CorsFilter的类,并实现javax.servlet.Filter接口。
2.在doFilter方法中,添加以下代码以设置Access-Control-Allow-Origin响应头:
```java
response.setHeader("Access-Control-Allow-Origin", "*");
```
其中,*表示允许所有来源访问该资源。如果你想限制访问来源,可以将*替换为特定的域名。
3.将CorsFilter类添加到Spring Boot应用程序中。可以通过在应用程序的主类上添加@ServletComponentScan注释来实现这一点,如下所示:
```java
@SpringBootApplication
@ServletComponentScan
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
```
4.重新启动应用程序,Access-Control-Allow-Origin响应头现在应该已经设置了。
相关问题
springboot设置Access-Control-Allow-Origin允许多域名访问
以下是在Spring Boot中设置Access-Control-Allow-Origin允许多域名访问的方法:
1.在Spring Boot的配置类中添加如下配置:
```java
@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")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(3600);
}
};
}
}
```
2.在Controller类或者方法上添加@CrossOrigin注解:
```java
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "*", maxAge = 3600)
public class ApiController {
// ...
}
```
以上两种方法都可以实现在Spring Boot中设置Access-Control-Allow-Origin允许多域名访问。
springboot将Access-Control-Allow-Origin禁用
要禁用Spring Boot应用程序的`Access-Control-Allow-Origin`,你可以通过配置Spring Security或使用WebMvcConfigurer来实现。
方法一:使用Spring Security配置
在Spring Security的配置类中,你可以通过添加以下配置来禁用`Access-Control-Allow-Origin`:
```java
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 其他配置...
.cors().disable();
}
}
```
这将禁用跨域资源共享(CORS)配置,从而禁用`Access-Control-Allow-Origin`。
方法二:使用WebMvcConfigurer配置
创建一个实现了WebMvcConfigurer接口的配置类,并覆盖addCorsMappings方法以禁用`Access-Control-Allow-Origin`:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("")
.allowedMethods("")
.allowedHeaders("");
}
}
```
在上述配置中,将allowedOrigins、allowedMethods和allowedHeaders都设置为空字符串,这将禁用允许的源,方法和头部,从而禁用`Access-Control-Allow-Origin`。
通过以上配置中的任何一种方法,你都可以禁用`Access-Control-Allow-Origin`,从而不允许任何跨域请求。请注意,这可能会导致一些功能无法正常工作,因此要谨慎使用。