2017-11-25 85 views
0

我有一个有效的网址,我正尝试使用进行下载。AJAX下载不能正常工作

下面的代码有什么问题?

url = "https://firebasestorage.googleapis.com/v0/b/analyst-3206a.appspot.com/o/research_reports%2FNt7cXdWHFlQuwRcy8wo4B49VNeD3%2Fa?alt=media&token=5521f889-2737-4433-a279-f04999cdff22" 

var xhr = new XMLHttpRequest(); 
xhr.responseType = 'blob'; 
xhr.onload = function(event) { 
    var blob = xhr.response; 
}; 
xhr.open('GET', url); 
xhr.send(); 
+0

这个代码是没有错。你是什​​么意思'不工作'? –

+0

我的意思是没有下载,它只是默默地运行到完成 – ishandutta2007

+0

你的文件是一个'PNG'格式。看到它的标题:https://imgur.com/a/ZapGY。 –

回答

2

你必须把createObjectURL

url = "https://firebasestorage.googleapis.com/v0/b/analyst-3206a.appspot.com/o/research_reports%2FNt7cXdWHFlQuwRcy8wo4B49VNeD3%2Fa?alt=media&token=5521f889-2737-4433-a279-f04999cdff22" 
 
var a = document.getElementById("a"); 
 
    var xhr = new XMLHttpRequest(); 
 
    xhr.responseType = 'blob'; 
 
    xhr.onload = function (event) { 
 
    var blob = xhr.response; 
 

 
    var a = document.createElement("a"), 
 
     url = window.URL.createObjectURL(blob); 
 
    document.body.appendChild(a); 
 
     a.href = url; 
 
     a.download = "fileName." + blob.type; 
 
     a.click(); 
 
     window.URL.revokeObjectURL(url); 
 

 
    }; 
 
    xhr.open('GET', url); 
 
    xhr.send();

+0

这是下载一个腐败的pdf。我给的网址是一张图片。 – ishandutta2007

+2

您可以更改为:'a.download =“fileName.png”;'。设置扩展名。默认情况下'blob.type'正在返回'pdf' ... –