Maison > interface Web > js tutoriel > Comment déclencher des téléchargements de fichiers à partir des réponses AJAX POST ?

Comment déclencher des téléchargements de fichiers à partir des réponses AJAX POST ?

DDD
Libérer: 2024-12-31 01:50:09
original
208 Les gens l'ont consulté

How to Trigger File Downloads from AJAX POST Responses?

Comment gérer le téléchargement de fichiers avec AJAX POST

Lors de l'envoi de requêtes AJAX POST dans une application JavaScript, les développeurs peuvent rencontrer des scénarios dans lesquels le serveur répond avec un fichier au lieu de JSON données. Dans de tels cas, déclencher un téléchargement de fichier dans le navigateur du client devient nécessaire. Cet article explore une solution à ce défi.

Les requêtes AJAX spécifient généralement le Content-Type et inspectent l'en-tête Content-Disposition pour identifier le type de réponse. Après avoir déterminé que la réponse contient un fichier, la question se pose : comment lancer un téléchargement ?

La solution réside dans l'utilisation de parties de FileAPI dans les navigateurs modernes. Voici comment cela fonctionne :

  1. Configurez une requête XMLHttpRequest :

    • Définissez le type de réponse sur « blob » pour recevoir la réponse sous forme de blob de données binaires.
    • Spécifiez l'en-tête Content-type comme 'application/x-www-form-urlencoded' pour le POST requêtes.
  2. Gérer l'événement de chargement :

    • En cas de réponse réussie (statut 200), extrayez le blob de la réponse.
    • Obtenez l'en-tête Content-Disposition pour vérifier une suggestion filename.
  3. Lancer le téléchargement :

    • Pour Internet Explorer, utilisez window.navigator.msSaveBlob pour enregistrer le blob avec le nom de fichier suggéré.
    • Pour les autres navigateurs, utilisez window.URL ou window.webkitURL pour créer une URL téléchargeable pour le blob.
    • Utilisez l'attribut HTML5 a[download] pour spécifier le nom du fichier (si disponible) ou redirigez l'utilisateur vers l'URL téléchargeable.
    • Révoquer l'URL téléchargeable temporaire après un court délai pour le nettoyage. .
  4. jQuery.ajax Alternative :

    • Utilisez la méthode jQuery.ajax avec des configurations similaires et gérez le blob dans le rappel de réussite.

En résumé, en employant le FileAPI, il est possible de lancer des téléchargements de fichiers dans le navigateur même lorsque la réponse du serveur est déclenchée par des requêtes AJAX POST. Cette technique est prise en charge dans les navigateurs modernes et offre une expérience pratique et conviviale pour télécharger des fichiers à partir d'applications Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal