javascript - 将xlsx文件保存在变量中,然后点击下载?

标签 javascript jquery ajax

我有一个 ajax 函数,它返回一个 xlsx 文件。但我读到,出于安全原因,使用 ajax 无法自动开始下载。所以我想将 xlsx 文件保存在一个变量中,并制作一个带有“准备下载”的按钮。我想知道这是否可能。

查看返回 xlsx 文件的函数。

return HttpResponse(save_virtual_workbook(wb), content_type='application/vnd.ms-excel')

java脚本

var xlsxVar = ''

function ajaxGetCSV() {

    $.ajax({
        url : "{% url 'manager:file' %}", 
        type : "POST", 
        data : { csrfmiddlewaretoken : '{{ csrf_token }}' }, 

        success : function(data) {
            xlsxVar = data
        },

        error : function(xhr,errmsg,err) {
            console.log(xhr);
            console.log(errmsg);
            console.log(err);
        }
    });
};

还有一些点击功能来开始下载。

更新:

<div class='ready'>
    test
</div>

$(".ready").click(function(){
        var link = $("<a></a>");
        link.href = xlsxFile;
        link.download = true;
        link.click();
});

以上仍然没有统计下载。

最佳答案

出于安全原因,您一直建议执行的操作是不可能的。您可以做的是使用链接到该文件的 anchor 标记。

这是一个我动态创建该 anchor 并单击它的示例

var link = $("<a></a>");
link.href = xlsxFile;
link.download = true;
link.click();

关于javascript - 将xlsx文件保存在变量中,然后点击下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198282/

相关文章:

javascript - 主 url 之前的 SilentPrint 是什么?

javascript - 获取方法 javascript 传递 cookie

javascript - 专有名称的 JS 正则表达式 : How to force capital letter at the start of each word?

javascript - 删除 Canvas 然后在同一位置添加新的 Canvas

javascript - JQuery 数据表列的自定义可排序下拉列表

java - Tomcat HtmlUnit 过滤器看不到请求的 URL

javascript - 在 jquery ajax 中使用动态数据实现自动完成

javascript - 为什么全局变量不能删除?

javascript - 在播放和播放YouTube iframe嵌入时触发事件

ajax - JSF:重用 f:ajax 渲染/执行选择器