Javascript PDF Blob-Window.open不显示内容
我试图在前端显示来自后端的pdf文件,但新窗口仅显示pdf控件。 有人能评估我的代码并指出我做错了什么吗 后端代码:Javascript PDF Blob-Window.open不显示内容,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我试图在前端显示来自后端的pdf文件,但新窗口仅显示pdf控件。 有人能评估我的代码并指出我做错了什么吗 后端代码: @RequestMapping(value = "/capaRdv/{idRdv}", method = RequestMethod.POST) public void relatorioCapaRdv(@PathVariable Integer idRdv, HttpServletResponse response) throws JRException, SQLExc
@RequestMapping(value = "/capaRdv/{idRdv}", method = RequestMethod.POST)
public void relatorioCapaRdv(@PathVariable Integer idRdv, HttpServletResponse response) throws JRException, SQLException, IOException {
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("idRdv", idRdv);
InputStream jasperStream = this.getClass().getResourceAsStream("/reports/capaRdv.jasper");
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource.getConnection());
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=capaRdv" + idRdv + ".pdf");
final OutputStream outStream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
}
通过将POST方法更改为获取:
method=RequestMethod.GET
axios.get
emiteRelatorio(idRdv) {
const url = `${baseApiUrl}/relatorios/capaRdv/${idRdv}`;
axios
.post(url, { responseType: "blob" })
.then(res => {
const file = new Blob([res.data], { type: "application/pdf" });
const fileURL = URL.createObjectURL(file);
window.open(fileURL);
})
.catch(error => {
Swal.fire({
text: error.response.data.error,
type: "error",
confirmButtonClass: "md-button md-danger btn-fill",
buttonsStyling: false
});
});
}