Maison > Article > interface Web > Comment télécharger des fichiers via POST avec JSON en JavaScript/jQuery ?
Lorsqu'il s'agit de services Web RESTful, la gestion des réponses peut varier en fonction de leur format. Cet article explore un scénario spécifique où l'objectif est de soumettre une requête POST avec des données JSON et de récupérer un fichier téléchargeable en réponse, invitant le navigateur à l'enregistrer.
Une approche consiste à créer une iframe et à ajouter sa source au corps de la page Web. Cela déclenchera l'invite de téléchargement du navigateur. Cependant, il est important de noter que cette méthode peut interférer avec le contenu de la page existante, il est donc recommandé d'utiliser appendChild au lieu de innerHTML.
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { var iframe = document.createElement("iframe"); iframe.setAttribute("src", retData.url); iframe.setAttribute("style", "display: none"); document.body.appendChild(iframe); });</code>
Un jQuery- L'alternative basée sur la méthode consiste à utiliser la méthode append() pour ajouter l'iframe au corps.
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { $("body").append("<iframe src='" + retData.url+ "' style='display: none;' ></iframe>"); });</code>
Les deux solutions reposent sur l'hypothèse que la réponse POST inclut une propriété 'url' pointant vers le fichier téléchargeable. Lorsque l'iframe est ajouté à la page avec cette URL, le navigateur intercepte la demande et invite l'utilisateur à télécharger le fichier. Cette approche nécessite une configuration appropriée du type MIME sur le serveur Web.
Bien que ces solutions fournissent une approche viable pour télécharger des fichiers via des requêtes POST, il est crucial de prendre en compte les limitations et inconvénients potentiels, en particulier lorsque vous traitez des fichiers plus volumineux. De plus, il peut être nécessaire d'implémenter des fonctionnalités supplémentaires dans le gestionnaire de réussite AJAX pour activer la gestion des erreurs et fournir des commentaires à l'utilisateur.
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!