在前后端分离的项目中,文件下载和跨域问题总是让人头疼。今天就用一个简单又高效的方案搞定它!😎
首先,我们需要使用 `ResponseEntity` 来处理文件下载逻辑。通过设置响应头 `Content-Disposition: attachment; filename="yourFileName.zip"`,可以让浏览器识别为文件下载。代码如下:
```java
@GetMapping("/download")
public ResponseEntity
Resource resource = new UrlResource("file:path/to/your/file");
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
.body(resource);
}
```
接着,针对跨域问题,只需在 Spring Boot 的配置类中添加 CORS 配置即可。比如:
```java
@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/").allowedOrigins("http://frontend-domain.com");
}
};
}
}
```
这样,前端就能愉快地调用了!🎉
💡 小贴士:记得检查文件路径是否正确,以及前端请求时的跨域配置哦!🚀