使用JQuery POST发送文件下载请求

时间:2013-07-09 10:56:26

标签: java javascript jquery

我正在重写一些过去使用GET的代码,并将其替换为POST。

下载网址曾是对

的GET请求
https://myurl/getfile?fileid=1234&filetype=pdf

现在,我将其更改为

https://myurl/getfile 

并将fileid=1234&filetype=pdf放入POST正文中。

我使用jquery的post方法做到了这一点:

function postCall(url, param) {
    $.post(url, param);
}

服务器端是用Java编写的,我试图重用GET的旧代码,它将文件二进制文件写入servlet的流中。

但是,我的浏览器不会提示用户下载,这是以前用于GET的。

stackoverflow上的帖子确实表明AJAX不应该用于文件下载。但是我可以使用哪种替代方式?但请求不是由表单生成的。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我建议在页面上创建一个表单(或者使用jQuery动态创建一个表单),然后让该表单进行帖子提交(在表单上使用jQuery的“submit”函数或“trigger('submit')”) 。这样,请求将不会在后台异步完成。如果“getfile”脚本响应带有Content-disposition:attachment的文件,则应该下载。

那就是说,我不确定浏览器会在这种情况下“提示”用户 - 这取决于浏览器(是否出现保存下载的对话框,或者是否自动下载文件提示)。