springboot vue 跨域 下载本地文件
时间: 2023-05-16 13:06:26 浏览: 81
可以通过设置后端的跨域配置来解决这个问题。在 Spring Boot 中,可以使用 @CrossOrigin 注解来实现跨域访问。同时,前端也需要在请求头中添加 Access-Control-Allow-Origin 字段来允许跨域访问。具体实现可以参考以下代码:
后端代码:
```
@RestController
public class FileController {
@GetMapping("/download")
@CrossOrigin(origins = "*", maxAge = 3600)
public ResponseEntity<Resource> downloadFile() {
// 下载本地文件的代码
// ...
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getName() + "\"")
.body(resource);
}
}
```
前端代码:
```
axios({
method: 'get',
url: 'http://localhost:8080/download',
responseType: 'blob',
headers: {
'Access-Control-Allow-Origin': '*'
}
}).then(response => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'file.pdf');
document.body.appendChild(link);
link.click();
});
```
注意:这里的代码只是一个简单的示例,实际应用中需要根据具体情况进行修改。