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

时间:2016-10-23 00:09:31

标签: javascript jquery ajax

我有一个ajax函数,它返回一个xlsx文件。但出于安全考虑,我读到你用ajax无法自动启动下载。所以我想将xlsx文件保存在变量中,然后创建一个“准备下载”的按钮。我想知道这是否可能。

查看返回xlsx文件的函数。

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

javacript

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();
});

上述内容仍无法下载。

1 个答案:

答案 0 :(得分:1)

出于安全原因,您无法提出建议。你可以做的是使用链接到文件的锚标记。

以下是我动态创建该锚点并单击它的示例

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