Für diejenigen, die einen moderneren Ansatz suchen, können Sie die verwenden fetch API
. Das folgende Beispiel zeigt, wie Sie eine Tabellenkalkulationsdatei herunterladen. Mit dem folgenden Code ist dies problemlos möglich.
fetch(url, {
body: JSON.stringify(data),
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
})
.then(response => response.blob())
.then(response => {
const blob = new Blob([response], {type: 'application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = downloadUrl;
a.download = "file.xlsx";
document.body.appendChild(a);
a.click();
})
Ich glaube, dieser Ansatz ist viel einfacher zu verstehen als andere XMLHttpRequest
Lösungen. Außerdem hat es eine ähnliche Syntax wie der jQuery
Ansatz, ohne dass zusätzliche Bibliotheken hinzugefügt werden müssen.
Natürlich würde ich empfehlen, zu überprüfen, in welchem Browser Sie entwickeln, da dieser neue Ansatz im IE nicht funktioniert. Die vollständige Browserkompatibilitätsliste finden Sie unter folgendem Link .
Wichtig : In diesem Beispiel sende ich eine JSON-Anfrage an einen Server, der die angegebenen Daten abhört url
. Dies url
muss festgelegt werden. In meinem Beispiel gehe ich davon aus, dass Sie diesen Teil kennen. Berücksichtigen Sie auch die Header, die für Ihre Anfrage erforderlich sind. Da ich einen JSON sende, muss ich den Content-Type
Header hinzufügen und auf setzen application/json; charset=utf-8
, um dem Server den Typ der Anforderung mitzuteilen, die er erhalten wird.