Pour ceux qui recherchent une approche plus moderne, vous pouvez utiliser le fetch API
. L'exemple suivant montre comment télécharger un fichier de feuille de calcul. Cela se fait facilement avec le code suivant.
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();
})
Je pense que cette approche est beaucoup plus facile à comprendre que d’autres XMLHttpRequest
solutions. En outre, il a une syntaxe similaire à l' jQuery
approche, sans qu'il soit nécessaire d'ajouter des bibliothèques supplémentaires.
Bien sûr, je vous conseillerais de vérifier dans quel navigateur vous développez, car cette nouvelle approche ne fonctionnera pas sur IE. Vous pouvez trouver la liste complète de compatibilité du navigateur sur le lien suivant .
Important : dans cet exemple, j'envoie une requête JSON à un serveur écoutant sur le donné url
. Cela url
doit être défini, sur mon exemple, je suppose que vous connaissez cette partie. Tenez également compte des en-têtes nécessaires pour que votre demande fonctionne. Puisque j'envoie un JSON, je dois ajouter l'en- Content-Type
tête et le définir sur application/json; charset=utf-8
, afin d'indiquer au serveur le type de demande qu'il recevra.