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>

0
userMod2 14 avril 2018 à 12:27

3 réponses

Meilleure réponse

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();
})
1
aaron.xiao 14 avril 2018 à 12:25
$.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

1
Mustafa Alp 14 avril 2018 à 09:31

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";
0
Angel Luis 14 avril 2018 à 10:12