2

我有一个提供 excel 文件的 spring MVC 视图,但是,我现在修改了该过程,以便用户获得一个模式框,他们可以在下载 excel 之前在其中选择一些选项。这些选定的选项被发送到视图。

我的请求看起来像这样

$.get("downloadExcel", {  
    'foo': 'bar'
});

当提出该请求时,我希望文件被下载,但是,这并没有发生。即使来自上述请求的响应标头是:

Cache-Control:private, must-revalidate
Content-disposition:attachment; filename=filename.xls
Content-Language:en-US
Content-Type:application/vnd.ms-excel; charset=ISO-8859-1
Pragma:private
Server:Jetty(6.1.14)
Transfer-Encoding:chunked 

注意:当我删除对话框时一切正常,因此请求不再是 ajax 请求。

问题

有没有办法通过ajax请求获取excel文件?

4

1 回答 1

2

您不能使用 Ajax 响应来执行此操作。您需要重定向浏览器或在页面中呈现隐藏的 iFrame 以启动下载。

于 2012-11-19T00:42:34.580 回答