Ich habe eine CSV-Datei, die auf meinem Back-End generiert wird, und die API erfordert, dass ich einen POST, um die Generierung der Datei auszulösen. Was ist etwas problematisch wie es ist. Glücklicherweise stolpere ich über eine Mischung von Methoden, die das allgemeine Spiel zu sein scheint, das für so etwas von einer guten Handvoll Leute verwendet wird. Leider scheint das bei Firefox und vielleicht anderen Browsern nicht zu funktionieren. Ich weiß, es funktioniert perfekt in Chrome, aber ich frage mich, ob es Chrom, dass es funktioniert oder wenn es nicht funktioniert in Firefox aus irgendeinem Grund. Unten ist der Code, den ich bis jetzt habe, ich habe manuell ein paar Variablen geändert, die versuchen, sie hier zu verstehen. Aber hat jemand irgendwelche Ideen? Ist das etwas, das einfach nicht gemacht werden kann?Trigger-Download von Blob
$.ajax({
url: '/api?id=' + post_file_id,
"async": true,
"crossDomain": true,
"method": "GET",
"headers": {
"cache-control": "no-cache",
},
"processData": false,
}).done((response) => {
let a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
let blob = new Blob([response], {type: "text/csv;charset=utf-8;"});
let url = window.URL.createObjectURL(blob);
a.href = url;
a.download = 'download-' + post_file_.replace(' ', '_') + '.csv';
a.click();
window.URL.revokeObjectURL(url);
//document.body.removeChild(a);
}).fail(() => {
this._showStatusAlertBox('error', 'There is no data for post.');
});
}
ähnlich http://stackoverflow.com/questions/30694453/blob-createobjecturl-download-not-working-in-firefox-but-works-when-debugging – Musa