@CrossOrigin(
时间: 2024-01-05 21:19:46 浏览: 69
@CrossOrigin是一个Spring框架中用于处理跨域请求的注解。它可以标注在类或者方法上,用于指定允许的跨域请求的配置。
1. origins属性:用于指定允许的源地址。可以是一个字符串数组,也可以是一个字符串。如果不指定该属性,默认允许所有的源地址访问。
2. value属性:与origins属性功能相同,用于指定允许的源地址。
下面是一个使用@CrossOrigin注解的示例:
```java
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://example.com")
public class MyController {
@GetMapping("/data")
public String getData() {
// 处理请求并返回数据
return "Data";
}
}
```
在上面的示例中,我们在MyController类上使用了@CrossOrigin注解,并指定了允许的源地址为"http://example.com"。这样,来自该源地址的跨域请求就可以访问`/api/data`接口。
另外,你还可以使用CorsConfiguration类的applyPermitDefaultValues方法来配置默认的跨域请求。这个方法会设置一些常用的跨域配置,例如允许所有的HTTP方法、允许所有的请求头等。
```java
@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://example.com")
.allowedMethods("*")
.allowedHeaders("*");
}
};
}
}
```
在上面的示例中,我们创建了一个CorsConfig类,并使用@Bean注解将其注册为一个Spring的配置类。在corsConfigurer方法中,我们使用CorsRegistry对象来配置跨域请求的规则。这里我们指定了允许的源地址为"http://example.com",允许的HTTP方法为所有方法,允许的请求头为所有请求头。
阅读全文