0

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

下载 URL 曾经是一个 GET 请求

https://myurl/getfile?fileid=1234&filetype=pdf

现在,我将其更改为

https://myurl/getfile 

并将其放入fileid=1234&filetype=pdfPOST 正文中。

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

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

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

但是,我的浏览器不会提示用户下载,这在 GET 中是这样做的。

以前关于 stackoverflow 的帖子确实建议不应使用 AJAX 进行文件下载。但是我可以使用什么替代方法?但是,请求不是由表单生成的。

非常感谢。

4

1 回答 1

0

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

也就是说,我不确定浏览器会在这种情况下“提示”用户——这取决于浏览器(是否出现对话框来保存下载,或者它是否会自动下载文件而没有提示) .

于 2013-07-09T11:58:53.007 回答