从Java Spring Controller调用Ajax后,文件不可用

时间:2016-11-13 09:23:52

标签: java ajax spring file controller

我有一个Ajax方法,它调用控制器生成一个文件并获取其URL:

$('.export-excel').on('click', function() {
		var url = 'orders/excel';
		$.get(url).success(function(data) {
			console.log(data);
			downloadFile("files/" + data);
		}).error(function(data) {
			console.log(data);
		});
	});

这是控制器代码:

@RequestMapping(value="/excel", method=RequestMethod.GET)
@ResponseBody
public String getExcel() {
        List<Order> exportOrders=new LinkedList<Order>();
        try {
            exportOrders=orderService.get(filter);
        } catch (Exception e) {
            e.printStackTrace();
        }
        File excel=excelService.export(exportOrders, filter.getCurrency());
        FileSystemResource resource=new FileSystemResource(excel);
        return resource==null?StringUtils.EMPTY:resource.getFilename();
    }

这样可以正常工作并正确返回文件的URL,但是当我下载它时。浏览器无法下载,我在Chrome上收到错误“失败 - 无文件”。

为我下载这个的唯一解决方案是刷新Eclipse中的工作区,但是每次创建新文件时都必须刷​​新它(这是不切实际的)。

编辑:此问题与sjonshon's Question不同,因为此处的代码适用于此处找到的解决方案,但我们的想法是在刷新工作区之前文件不存在。

0 个答案:

没有答案