La raison pour laquelle la demande de téléchargement ne peut pas être envoyée en ajax

零到壹度
Libérer: 2023-03-23 13:12:01
original
1613 Les gens l'ont consulté

Le contenu partagé avec vous dans cet article est la raison pour laquelle les demandes de téléchargement ne peuvent pas être envoyées en ajax. Il a une certaine valeur de référence.

Je fais des téléchargements de fichiers récemment. et écrire en arrière-plan. J'ai une couche de contrôle, et je devrais pouvoir télécharger des fichiers, divers fichiers, des images, Excel, etc. si j'entre simplement.

Mais au début, le téléchargement échoue toujours. , et le code tronqué suivant apparaît :

Code de demande à la réception :

$('#fileexcel').unbind('click').bind('click',function(){
                    alert("我要下载了");
                    $.ajax({
                        type:'post',
                        url:'media',
                        data:null,
                        async:true,
                        success : function(msg){
                            alert(msg);
                        }
                    })
                })
Copier après la connexion

Il semble qu'il n'y ait pas de problème, mais il ne peut pas être téléchargé.

Au départ, je pensais qu'il y avait un problème avec le code backend, mais il y a toujours des problèmes pour mettre diverses démos sur Internet.

Après avoir lutté pendant une journée, j'ai finalement trouvé le problème.

Il y a un problème avec la méthode de requête. Les requêtes de téléchargement de fichiers ne peuvent pas être écrites en ajax !

Écrivez-le simplement comme ceci :

<a href="/media">点击下载Excel</a>
或者
location.href = &#39;/media&#39;;
Copier après la connexion

Cliquez pour télécharger cette fois et l'effet idéal suivant apparaîtra.


Résumez ensuite pourquoi la demande de téléchargement ne peut pas être envoyée en ajax :

Raison : En raison de la réponse, le navigateur demandeur général traitera la réponse générée par le serveur, comme la génération de png, le téléchargement de fichiers, etc. Cependant, la requête ajax n'est qu'une requête de « type de caractère », c'est-à-dire que le contenu demandé est stocké. en type de texte. Le fichier est téléchargé sous forme binaire. Bien que la réponse renvoyée puisse être lue, elle est uniquement lue et ne peut pas être exécutée. Pour parler franchement, js ne peut pas appeler le mécanisme et le programme de traitement de téléchargement du navigateur.

Recommandations associées :

Impossible d'utiliser ajax pour demander le téléchargement de fichiers

La raison pour laquelle la requête Ajax ne peut pas télécharger le fichier

Solution alternative pour le téléchargement de fichiers qui ne peut pas utiliser ajax

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!

Étiquettes associées:
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