Télécharger le fichier via jquery ajax post
Je suis en train d'exporter ma page web de données et le télécharger dans le fichier excel. mais le téléchargement ne démarre pas même la réponse de retour réussir.
$.ajax({
type: "POST",
url: _url,
contentType: 'multipart/form-data;boundary=SzB12x',
data: json,
});
ResponseText quelque chose comme ceci:
PK�J;F xl/theme/theme1.xml�YOo�6����,[r��n;v��i����#-�kJH:�oC{0X7�2
��mZ���d��u@�(٦b:M����
�����{|��^�0t@��*"w$�!0I�[�՚n�i��'����iH� g�,��|�J� ! ���rhs�h��?r&�L ���߶S��v@�� �#��� "���}��Жt%�rh�t"������+� �������u{ނ��0K���oy�9OT WywkA�
���F�� 6*�����[���U���
Je pense que c'est le fichier mais je ne peux pas le télécharger!!
Toute aide, s'il vous plaît?
Merci!
OriginalL'auteur | 2015-01-27
Vous devez vous connecter pour publier un commentaire.
J'ai connu le même problème et résolu avec succès. Mon cas d'utilisation est présent.
Code:
L'extrait ci-dessus est simplement en faisant des suivantes
Ici, nous devons soigneusement mis de peu de choses sur le côté serveur. J'ai mis quelques en-têtes en Python Django HttpResponse. Vous devez définir en conséquence si vous utiliser d'autres langages de programmation.
Depuis que j'ai télécharger xls(excel) ici, j'ai ajusté contentType ci-dessus. Vous devrez les définir en fonction de votre type de fichier.
a fonctionné pour moi aussi, mais je voudrais savoir pourquoi il ne fonctionne pas avec $ajax jquery
OriginalL'auteur Naren Yellavula
Essayez d'utiliser une forme cachée de soumettre la demande.
Lorsqu'un utilisateur soumet un formulaire HTML, toutes les données saisies dans le formulaire par l'utilisateur est envoyé comme une requête GET ou POST à l'URL spécifiée dans l'attribut “ACTION” du FORMULAIRE.
Dans l'exemple ci-dessus, une requête HTTP POST est publié à l'sendmail.php script sur le formulaire de soumission. Vous pouvez ajouter target=”_blank” à la balise FORM pour traiter la demande dans une nouvelle fenêtre.
Cependant, si vous souhaitez soumettre un FORMULAIRE sur la page en arrière-plan sans diriger le navigateur vers une autre page (document.emplacement.href changements sur le formulaire de soumission), vous avez deux options:
Option #1. Vous pouvez soit créer une IFRAME invisible, à l'intérieur de votre page HTML et de le définir comme une cible pour la FORME Originale. Cela permettra de soumettre le formulaire, mais sans rechargement de la fenêtre parent.
Option #2: Il y a une autre méthode qui vous permet de créer des charges avant de soumettre le formulaire. À la différence de l'IFRAME base de la soumission du formulaire, le code suivant fait un standard de soumettre le formulaire de demande et donc à votre navigateur de l'emplacement du changement et de la page en cours sera ajouté à l'historique du navigateur. Crédit: Rakesh Pai.
Dans ceci lien, vous pouvez trouver le moyen de créer caché formulaire et le soumettre.
profitez-en!!
OriginalL'auteur mohammad
Approche ici directement levée de https://gist.github.com/DavidMah/3533415
Cette approche utilise
<form>
et ajoute les données avec une clé. Cette méthode fonctionne si le serveur est déjà attendre les données comme un attribut du corps de la requête, plutôt que le corps de la requête elle-même. Si les données téléchargées est un objet, vous pouvez effectuer une itération sur cet objet avec les touches. Si les données téléchargées est un tableau, soit de modifier le serveur de la route ou [ajouter idée ici].dans le navigateur
Sur le serveur
Exemple
OriginalL'auteur prototype
Si vous voulez juste pour télécharger un fichier, vous n'avez pas besoin d'utiliser ajax pour le faire. En fait, vous ne pouvez pas télécharger le fichier en utilisant ajax.
Vous pouvez toujours le faire en faisant un lien hypertexte
<a href="your_link">Export</a>
demande à un serveur de page que les réponsescontent-type
estapplication/vnd.ms-excel
etcontent-disposition
estattachment
.OriginalL'auteur Cà phê đen
OriginalL'auteur ozil
Vous pouvez atteindre cet objectif à l'aide d'un iFrame. Un exemple de fonction:
Vous pouvez ajouter à l'URL. Mise à jour de ma réponse.
l'appel qui est fait est obtenir de ne pas poster
les iFrames sont archaïque et approche de solutions. Ils sont d'avoir de graves conséquences sur la sécurité et ne doivent pas être utilisés.
OriginalL'auteur Pramod Karandikar