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); } }) })
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 = '/media';
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!