Мое приложение предполагает загрузку файла из БД.
Контроллер:
@GetMapping(value = "/download/{id}")
public ResponseEntity<Resource> downloadBook(@PathVariable Long id) {
Book book = bookService.findById(id);
return ResponseEntity.ok().contentType(MediaType.APPLICATION_PDF)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + book.getFileName() + ".pdf\"")
.body(new ByteArrayResource(book.getFile()));
}
Это работает, когда я вызываю его прямо из браузера ( всплывающее окно загрузки ), но я пытаюсь сделать это с помощью вызова ajax. Пока это мой метод ajax, но этот код на самом деле просто предупреждает меня об успехе без всплывающего окна загрузки.
downloadBook : function(bookId) {
$.ajax({
url : basePath + '/book/download/' + bookId,
success : function() {
alert("success!");
},
error : function() {
alert("error!");
}
});
}