Disons que j'ai une fonction qui fait un appel API qui renvoie une URL - comment puis-je commencer un téléchargement avec ce lien.
J'ai donc la fonction:
function myF() {
$.ajax{
//Some GET cal
return url
}
}
Et puis un bouton:
<button onclick="myF()">some</button>
3 réponses
Vous pouvez essayer l'attribut html5 download
, voir l'exemple:
$.ajax({
// config
}).then((res) => {
var a = document.createElement('a');
a.download = 'your file name';
a.href = res.data.url;
a.click();
})
$.ajax{
//your request
success: function() {
window.location = '<YOUR_URL>'; //url that you got from response
}
}
Cela fonctionne si votre URL de réponse est de la même origine.
Vous pouvez trouver plus d'informations ici: télécharger le fichier à l'aide d'une demande ajax
S'il s'agit d'une simple URL, je préfère utiliser un élément <a>
, puis lui donner une apparence de bouton en CSS:
<a href="download-url" class="btn">Click here to Download</a>
Et s'il s'agit d'une URL générée en JavaScript, vous pouvez ajouter l'URL via la manipulation DOM:
document.getElementsByClassName("btn")[0].href = "download-url";
Questions connexes
Questions liées
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.