2016-10-28 36 views
0

我有这段代码来下载一个xml文件,它是从json生成的。我用一个名为jsonToSsXml()的函数来做到这一点。这很有效,一切都很好。但是当我想下载时,并不是每个下载都可以。我没有任何错误信息,我把一些console.logs,看看是否产生斑点和它永远不能下载blob(使用reactjs)

var download = function(content, filename, contentType) { 
    if(!contentType) contentType = 'application/octet-stream'; 
    var a = document.getElementById('excel'); 
    var blob = new Blob([content], {'type':contentType}); 
    a.href = window.URL.createObjectURL(blob); 
    console.log(a.href); //blob:http://mydomain/c72b5368-1fd1-48a1-9b32-858e8d3ab6b5 
    a.download = filename; 
    console.log(a.download);//formulario.xls 
    //window.URL.revokeObjectURL(blob); 
}; 
download(jsonToSsXml(campos), 'formulario.xls', 'application/vnd.ms-excel'); 

正如我所说的,它工作在某些情况下,和其他人没有。它不能成为我的“内容”价值的问题,它是一个简单的XML,它们都生成OK。我对下载函数的最后一行进行了评论(URL.revokeObjectURL方法),因为我不确定如何使用它,并且在这种情况下它有什么要做。任何提示?

编辑:在随机的情况下(但总是使用相同的文件)我得到了一个404错误,没有找到该文件,但blob url始终以console.log的形式显示。

回答