AJAX -下载开始前提示保存

AJAX - prompt to save before the download begin

本文关键字:提示 保存 前提 开始 下载 AJAX      更新时间:2023-09-26

这是一个ajax调用,提示用户将响应保存为文件:

$http.get("api.php",{responseType:'arraybuffer'}).then(function(response){
    var blob = new Blob([response.data], {type: "application/pdf"});
    saveAs(blob, filename);
});

(saveAs是来自filesver .js)

问题是只有在响应完全加载后才显示提示对话框。如果响应很大,用户必须等待一段时间才能看到提示对话框。而且他/她不能取消下载。

通常当浏览器从直接链接下载文件时,它会在下载开始之前提示保存。

是否有可能与AJAX做同样的?

最简单的做法是将整个内容包装在if (confirm('Are you sure you want to save?'))中。

使用带有下载选项的锚定元素,并将查询参数链接到您的api,如<a href="api.php?some=params" download="yourfile.pdf">your file</a>