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

标签 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元素并类似的选项?

最佳答案

您无法使用 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?

关于javascript - 调用API REST并将zip文件下载到计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700102/

相关文章:

jquery - Canvas 和 jQuery : why doesn't getContext()

javascript - 如何将参数传递给ajax函数的回调

javascript - 在 jquery 中通过 $.ajax 提交表单后获取成功信息

javascript - 推送订阅错误未触发捕获

javascript - 无法从nodejs + node-mysql 中的模块获取返回

javascript - 使用 javascript 测试错误的 reCAPTCHA 站点 key

jquery - 用 jquery 改变几个 div css onload (this)

javascript - 通过 AJAX 和 PHP 通过输入 HTML 获取和读取文件

javascript - 如何增加 highcharts.js 中两个条形之间的宽度

javascript - 在 JSON 对象数组中搜索最大值