调用API REST并将zip文件下载到计算机

时间:2017-01-17 14:48:41

标签: javascript jquery ajax

我有以下代码:

jQuery.ajax({
    type: "GET",
    url: "http://localhost:8081/myservicethatcontainsazipfile",      
    contentType:'application/zip',
    success: function (response) {
        console.log("Successful");
    },
    error: function (xhr, ajaxOptions, thrownError) {
        console.log("Error.");
    }
});

根据AJAX规范,您无法直接将文件下载到计算机(安全原因),因此我想知道如何直接从客户端下载此文件,而无需创建并单击html元素,类似的选择?

2 个答案:

答案 0 :(得分:0)

使用AJAX无法做到这一点。但是,您可以重定向/打开一个新窗口,将用户带到文件页面,该页面将自动开始下载。

如果您不想要任何按钮,可以使用其中一行JavaScript。

window.open(download_url, '_blank')

window.location = 'download_url'

请注意,出于安全考虑,您需要在开始下载前至少等待3-5秒。

setTimeout(() => window.location = 'download_url', 5000);

您还应该查看How to start automatic download of a file in Internet Explorer?

答案 1 :(得分:0)

您还可以查看filesaver.js

https://github.com/eligrey/FileSaver.js/