J'ai le morceau de code suivant:

jQuery.ajax({
    type: "GET",
    url: "http://localhost:8081/myservicethatcontainsazipfile",      
    contentType:'application/zip',
    success: function (response) {
        console.log("Successful");
    },
    error: function (xhr, ajaxOptions, thrownError) {
        console.log("Error.");
    }
});

Selon les spécifications AJAX, vous ne pouvez pas télécharger un fichier directement sur l'ordinateur (pour des raisons de sécurité), je voudrais donc savoir comment puis-je télécharger ce fichier directement depuis le client sans avoir à créer et cliquer sur un élément html et des options similaires?

1
Pablo 17 janv. 2017 à 17:48

2 réponses

Meilleure réponse

Vous ne pouvez pas le faire avec AJAX. Mais, vous pouvez rediriger / ouvrir une nouvelle fenêtre qui amène l'utilisateur à la page du fichier, qui lancera automatiquement le téléchargement.

Si vous ne voulez pas de bouton, vous pouvez utiliser l'une de ces lignes de JavaScript.

window.open(download_url, '_blank')

window.location = 'download_url'

Gardez à l'esprit que pour des raisons de sécurité, vous devrez attendre au moins 3 à 5 secondes avant de démarrer le téléchargement.

setTimeout(() => window.location = 'download_url', 5000);

Vous devriez également jeter un œil à Comment démarrer téléchargement automatique d'un fichier dans Internet Explorer?

0
Community 23 mai 2017 à 10:29

Vous pouvez également consulter filesaver.js

https://github.com/eligrey/FileSaver.js/

0
snow_FFFFFF 17 janv. 2017 à 14:56