报错原因
HttpMediaTypeNotAcceptableException: Could not find acceptable representation
后台返回的响应报头[Response Headers]的Content-Type与前端的请求报头[Request Headers]中的Accept字段不匹配
查看Content-Type与Accept
浏览器F12查看
代码配置后端Content-Type
只要设置下response的ContentType即可
下载excle文件把Content-Type设置为
application/vnd.ms-excel;charset=UTF-8
或者
application/octet-stream;charset=UTF-8
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLUtil.encode(settingImportVO.getFileName()));
完整例子
@ApiOperation(value = "导入下载", produces="application/json")
@PostMapping(value = "/downLoadImport")
public void downLoadImport(@RequestParam(value = "id" ) Integer id, HttpServletResponse response) throws Exception{
grossProfitImportService.downLoadImport(id,response);
}
@Override
public void downLoadImport(Integer id, HttpServletResponse response) throws Exception {
SettingImportVO settingImportVO = grossProfitImportMapper.selectReportDownloadById(id);
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLUtil.encode(settingImportVO.getFileName()));
fileService.load(settingImportVO.getFilePath(), response.getOutputStream());
}