Heim >Web-Frontend >js-Tutorial >Analyse und Lösungen für die Fehlerursachen beim Herunterladen der Jquery Ajax-Anforderungsdatei
jQuery ist in der Tat ein sehr gutes, leichtes JS-Framework, das uns dabei helfen kann, schnell JS-Anwendungen zu entwickeln, und es hat in gewissem Maße unsere Gewohnheit, JavaScript-Code zu schreiben, geändert. Dieser Artikel konzentriert sich auf die Einführung der JQuery-Ajax-Anforderungsdateianalyse 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 gutes, leichtes JS-Framework, das uns bei der schnellen Entwicklung von JS-Anwendungen helfen kann. und bis zu einem gewissen Grad hat es unsere Gewohnheit, JavaScript-Code zu schreiben, verändert.
Hören Sie auf, Unsinn zu reden, und kommen Sie 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 . Der Download der Datei erfolgt in binärer Form. Obwohl die zurückgegebene Antwort gelesen werden kann, kann js den Download-Verarbeitungsmechanismus und das Programm des Browsers nicht aufrufen.
2. Lösung
1) Sie können jquery verwenden, um ein Formular zu erstellen und es zum Dateidownload einzureichen;
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) Sie können direkt Verwenden Sie das Tag a, um es zu implementieren. Datei herunterladen.
564207a1bac9ecce124ee07e0be15e25Zum Herunterladen klicken5db79b134e9f6b82c0b36e0489ee08ed
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)
|
||
Parameter |
||
options | (object) Eine Instanz eines Objekts, dessen Eigenschaften die Parameter dieser Operation definieren. Einzelheiten finden Sie in der Tabelle unten. | |
Rückgabewert | ||
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 wird die Kodierung des Werts von der Dienstprogrammfunktion $.ajax() übernommen |
dataType |
String |
Ein Schlüsselwort zur Identifizierung des erwarteten Typs von Daten, die in der Antwort zurückgegeben werden. 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 3f1c4e4b6b16bbbd69b2ee476dc4f83a-Blöcke innerhalb des zurückgegebenen HTML-Fragments werden ausgewertet json – der Antworttext wird als JSON-Zeichenfolge ausgewertet und das resultierende Objekt wird an die Rückruffunktion übergeben jsonp – Ähnlich wie JSON, bietet jedoch Remote-Skriptunterstützung (Remote-Server-Unterstützung vorausgesetzt) script – Der Antworttext wird an die Rückruffunktion übergeben. Bevor eine Rückruffunktion aufgerufen wird, wird die Antwort als eine oder mehrere JavaScript-Anweisungen verarbeitet. Text – Es wird davon ausgegangen, dass es sich beim Antworttext um normalen Text handelt. Die Serverressource ist für das Festlegen des entsprechenden Inhaltstyp-Antwortheaders verantwortlich. Wenn dieses Attribut weggelassen wird, wird der Antworttext ohne Verarbeitung oder Auswertung an die Callback-Funktion übergeben |
Timeout |
Wert |
Legen Sie den Timeout-Wert (Millisekunden) der Ajax-Anfrage fest. Wenn die Anfrage nicht vor Ablauf des Timeout-Werts abgeschlossen wird, wird die Anfrage abgebrochen und die Fehler-Callback-Funktion (falls definiert) wird |
global |
Boolean | Aktivieren oder deaktivieren Sie das Auslösen globaler Funktionen. Diese Funktionen können an Elemente angehängt und bei Ajax-Aufrufen zu unterschiedlichen Zeiten oder Zuständen ausgelöst werden. Die globale Funktionsauslösung ist standardmäßig aktiviert |
contentType | String |
Der Inhaltstyp, der in der Anfrage angegeben werden soll. Standardmäßig ist application/x-www-form-urlencoded (identisch mit dem Standardtyp, der für die Formularübermittlung verwendet wird) |
Erfolg |
Funktion |
Diese Funktion wird aufgerufen, wenn die Antwort auf die Anfrage einen Erfolgsstatuscode anzeigt. Der Antworttext wird als erster Parameter an diese Funktion zurückgegeben und basiert auf dem angegebenen dataType-Attribut. Der zweite Parameter ist eine Zeichenfolge, die den Statuscode enthält – in diesem Fall immer den Erfolgsstatuscode |
error |
Funktion |
Diese Funktion wird aufgerufen, wenn die Antwort auf die Anfrage einen Fehlerstatuscode zurückgibt. An diese Funktion werden drei Argumente übergeben: die XHR-Instanz, die Statusmeldungszeichenfolge (in diesem Fall immer der Fehlerstatuscode) und das von der XHR-Instanz zurückgegebene Ausnahmeobjekt (optional) |
abgeschlossen |
Funktion |
wird aufgerufen, wenn die Anfrage abgeschlossen ist. Es werden zwei Argumente übergeben: die XHR-Instanz und die Statusmeldungszeichenfolge (Erfolgsstatuscode oder Fehlerstatuscode). Wenn auch die Erfolgs- oder Fehler-Callback-Funktion angegeben ist, wird diese Funktion aufgerufen, nachdem die Erfolgs- oder Fehler-Callback-Funktion aufgerufen wurde |
beforeSend |
Funktion |
wird aufgerufen, bevor die Anfrage gestellt wird. Dieser Funktion wird eine XHR-Instanz übergeben und sie kann verwendet werden, um benutzerdefinierte Header festzulegen oder andere Vorab-Anforderungsvorgänge auszuführen |
asynchron > Boolean |
Wenn false angegeben ist, wird die Anfrage als synchrone Anfrage übermittelt. Standardmäßig sind Anfragen asynchron | |
Boolean | Wenn der Wert auf „false“ gesetzt ist, wird verhindert, dass die übergebenen Daten in ein URL-codiertes Format verarbeitet werden. Standardmäßig werden die Daten im URL-codierten Format verarbeitet (gilt für Anfragen vom Typ application/x-www-form-urlencoded) | |
Boolean | Wenn auf true gesetzt, nur, wenn sich der Antwortinhalt seit der letzten Anfrage (gemäß dem Last-Modified-Flag-Header) nicht geändert hat Lassen Sie zu, dass die Anfrage erfolgreich ist. Wenn es weggelassen wird, wird keine Headerprüfung durchgeführt |
Das obige ist der detaillierte Inhalt vonAnalyse und Lösungen für die Fehlerursachen beim Herunterladen der Jquery Ajax-Anforderungsdatei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!