Maison  >  Article  >  interface Web  >  Comment gérer l'échec de l'opération de téléchargement du fichier de requête Jquery Ajax

Comment gérer l'échec de l'opération de téléchargement du fichier de requête Jquery Ajax

php中世界最好的语言
php中世界最好的语言original
2018-04-23 11:32:441688parcourir

Cette fois, je vous apporte une requête Jquery Ajax téléchargement de fichier comment gérer une opération ayant échoué, quelles sont les précautions lors de la gestion d'un échec d'opération de téléchargement de fichier de requête Jquery Ajax, ce qui suit est un cas pratique, jetons un coup d'oeil.

jQuery est en effet un très bon framework JS léger, qui peut nous aider à développer rapidement des applications JS, et dans une certaine mesure, il a changé notre habitude d'écrire du code JavaScript Cet article I. se concentrera sur l'introduction de l'analyse et des solutions aux raisons pour lesquelles l'opération de téléchargement de fichier de requête Jquery Ajax a échoué. Les amis qui sont intéressés par l'analyse des raisons de l'échec des requêtes Ajax devraient apprendre ensemble

jQuery est en effet un très bon outil. De bons frameworks JS légers peuvent nous aider à développer rapidement des applications JS et, dans une certaine mesure, changer notre habitude d'écrire du code JavaScript.

Arrêtez de dire des bêtises et allons droit au but. Analysons d'abord les raisons de l'échec

1 Les raisons de l'échec

C'est à cause de la réponse. . Généralement, le navigateur demandeur traitera la réponse fournie 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 caractère », c'est-à-dire que le contenu demandé est stocké sous forme 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.

2. Solution

1) Vous pouvez utiliser jquery pour créer un formulaire et le soumettre pour le téléchargement du fichier

var form = $("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
form.attr("action",rootPath + "T_academic_essay/DownloadZipFile.do");
var input1 = $("<input>");
input1.attr("type","hidden");
input1.attr("name","strZipPath");
input1.attr("value",strZipPath);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();

2) Vous peut utiliser directement une balise pour implémenter le téléchargement de fichiers ;

Cliquez pour télécharger

3) Utilisez une iframe cachée ou un nouveau formulaire pour résoudre .

PS : Utilisation de la méthode $.ajax de requête AJAX

Utilisez la méthode $.ajax de jQuery pour contrôler les requêtes AJAX plus en détail. Il exerce un niveau de contrôle précis sur les requêtes AJAX.

Syntaxe de la méthode $.ajax

$.ajax(options)

Paramètres

options

(Objet) Une instance d'un objet dont Les propriétés définissent les paramètres de cette opération. Voir le tableau ci-dessous pour plus de détails.

Valeur de retour

Instance XHR

options valeur de plage détaillée

Nom

Type

Description

url

Chaîne

Adresse URL demandée

type

string

HTTP à utiliser. Généralement POST ou GET. En cas d'omission, la valeur par défaut est GET

data

object

Un objet dont les propriétés sont transmises en tant que paramètres de requête à la requête. S'il s'agit d'une requête GET, les données sont transmises en tant que chaîne de requête ; s'il s'agit d'une requête POST, les données sont transmises en tant que corps de la requête. Dans les deux cas, c'est la fonction utilitaire $.ajax() qui gère l'encodage de la valeur

dataType

String

Un mot-clé qui identifie le type de données qui devraient être renvoyées dans la réponse. Cette valeur détermine quel traitement ultérieur (le cas échéant) est effectué avant de transmettre les données à la fonction de rappel . Les valeurs valides sont :

xml - le texte de la réponse est analysé dans un document XML et le DOM XML résultant est transmis à la fonction de rappel

html - le texte de la réponse est transmis au rappel fonction non traitée. Tous les blocs