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

Send file download request using JQuery POST

本文关键字:文件下载 请求 JQuery POST 使用      更新时间:2023-09-26

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

下载URL曾经是对的GET请求

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

现在,我把它改成

https://myurl/getfile 

并将CCD_ 1放入POST主体中。

我用jquery的post方法做了这个:

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

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

然而,我的浏览器不会提示用户下载,这在GET中是常见的。

以前关于stackoverflow的帖子确实建议AJAX不应该用于文件下载。但对我来说,另一种方式是什么?不过,该请求不是由表单生成的。

非常感谢。

我建议在页面上创建一个表单(或使用jQuery动态创建一个),然后让该表单进行后期提交(在表单上使用jQuery的"submit"函数或"trigger('submit)")。这样,请求就不会在后台异步完成。如果"getfile"脚本以一个带有Contentdisposition:attachment的文件作为响应,那么它应该下载。

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