Spring Boot如何处理跨域请求获取图片?
时间: 2024-10-15 13:00:48 浏览: 59
Spring Boot处理跨域请求获取图片通常会涉及到`@CrossOrigin`注解和配置CORS策略。以下是基本步骤:
1. **添加`@CrossOrigin`注解**:在需要处理跨域请求的方法上使用这个注解,例如在Controller类或API类里。这允许来自特定来源(通常是*或特定域名)的请求访问你的资源。
```java
@GetMapping("/images")
@CrossOrigin(origins = "*", // 允许所有来源,也可以指定具体的域名
headers = "Authorization") // 如果你需要检查特定的头信息
public ResponseEntity<byte[]> getImage() {
// ... 图片处理代码
}
```
2. **全局CORS配置**:如果你希望在整个应用中启用跨域,可以在WebMvcConfigurer接口的实现类中进行配置。创建一个@Configuration类并实现该接口:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowCredentials(true);
}
}
```
这里配置了允许所有的原始源、所有HTTP方法和允许凭证传递。
3. **处理响应头**:为了让浏览器接受返回的资源,可以设置允许访问的Content-Type和其他必要的头部信息,如`Access-Control-Allow-Headers`和`Access-Control-Allow-Methods`。
```java
ResponseEntity<byte[]> response = ResponseEntity.ok()
.header(HttpHeaders.CONTENT_TYPE, "image/*")
.header(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "*")
.build();
```
阅读全文