Heim  >  Artikel  >  Web-Frontend  >  So behandeln Sie den Fehler beim Herunterladen der Jquery Ajax-Anforderungsdatei

So behandeln Sie den Fehler beim Herunterladen der Jquery Ajax-Anforderungsdatei

php中世界最好的语言
php中世界最好的语言Original
2018-04-23 11:32:441668Durchsuche

Dieses Mal bringe ich Ihnen eine JQuery-Ajax-Anfrage Datei-Download wie man mit einem fehlgeschlagenen Vorgang umgeht, was sind die Vorsichtsmaßnahmen bei der Behandlung eines JQuery-Ajax-Anfrage-Datei-Download-Fehlers, Folgendes ist ein praktischer Fall. Werfen wir einen Blick darauf.

jQuery ist in der Tat ein sehr gutes, leichtes JS-Framework, das uns dabei helfen kann, schnell JS-Anwendungen zu entwickeln, und in gewissem Maße hat es unsere Gewohnheit, JavaScript-Code zu schreiben, verändert Ich werde mich auf die Einführung von Analysen und Lösungen für die Gründe konzentrieren, warum der Download von JQuery-Ajax-Anforderungsdateien fehlgeschlagen ist. Freunde, die an der Analyse der Gründe für das Scheitern von Ajax-Anfragen interessiert sind, sollten gemeinsam lernen.

JQuery ist in der Tat ein sehr Gute, leichte JS-Frameworks können uns dabei helfen, schnell JS-Anwendungen zu entwickeln und bis zu einem gewissen Grad unsere Gewohnheit, JavaScript-Code zu schreiben, zu ändern.

Hören Sie auf, Unsinn zu reden, und kommen wir zur Sache.

Gründe für das Scheitern

Das liegt an der Reaktion Im Allgemeinen verarbeitet der anfordernde Browser die vom Server ausgegebene Antwort, z. B. das Generieren von PNG, das Herunterladen von Dateien usw. Bei der Ajax-Anfrage handelt es sich jedoch nur um eine „Zeichentyp“-Anfrage, dh der angeforderte Inhalt wird im Texttyp gespeichert . Die Datei wird in binärer Form heruntergeladen, obwohl die zurückgegebene Antwort nur gelesen und nicht ausgeführt werden kann. Um es ganz klar auszudrücken: js kann den Download-Verarbeitungsmechanismus und das Programm nicht aufrufen.

2. Lösung

1) Sie können mit jquery ein Formular erstellen und es zum Dateidownload senden; kann einen Tag direkt verwenden, um den Dateidownload zu implementieren;

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();
Zum Herunterladen klicken

3) Verwenden Sie zum Lösen einen versteckten Iframe oder ein neues Formular .

PS: Verwendung der AJAX-Anfrage-Methode $.ajax

Verwenden Sie die $.ajax-Methode von jQuery, um AJAX-Anfragen detaillierter zu steuern. Es übt eine differenzierte Kontrolle über AJAX-Anfragen aus.

Syntax der $.ajax-Methode

$.ajax(options)ParameterOptionenRückgabewert

(Objekt) Eine Instanz eines Objekts, dessen Eigenschaften definieren die Parameter dieser Operation. Einzelheiten finden Sie in der Tabelle unten.

XHR-Instanz

Optionen detaillierter Bereichswert

Name

Typ

Beschreibung

URL

String

Angeforderte URL-Adresse

Typ

Zeichenfolge

Zu verwendende HTTP-Methode. Normalerweise POST oder GET. Wenn es weggelassen wird, wird standardmäßig GET

data

object

verwendet

Ein Objekt, dessen Eigenschaften als Abfrageparameter an die Anfrage übergeben werden. Wenn es sich um eine GET-Anfrage handelt, werden die Daten als Abfragezeichenfolge übergeben; wenn es sich um eine POST-Anfrage handelt, werden die Daten als Anforderungstext übergeben. In beiden Fällen ist es die Dienstprogrammfunktion $.ajax(), die die Kodierung des Werts

dataType

String

Ein Schlüsselwort, das den Datentyp identifiziert, der voraussichtlich in der Antwort zurückgegeben wird. Dieser Wert bestimmt, welche nachfolgende Verarbeitung (falls vorhanden) durchgeführt wird, bevor die Daten an die

Rückruffunktion übergeben werden. Gültige Werte sind:

xml – der Antworttext wird in ein XML-Dokument geparst und das resultierende XML-DOM wird an die Rückruffunktion übergeben

html – der Antworttext wird an den Rückruf übergeben Funktion unbearbeitet. Alle