Heim > Web-Frontend > js-Tutorial > Hauptteil

Über jQuery Ajax – So verwenden Sie ajax()

jacklove
Freigeben: 2018-05-04 14:14:30
Original
1524 Leute haben es durchsucht

Wenn Sie Ajax lernen, werden Sie auf das Problem der Verwendung von ajax() stoßen. Als nächstes werde ich die spezifische Verwendung von ajax() im Detail vorstellen.

Beispiel

Einen Text über AJAX laden:

jQuery-Code:

$(document).ready(function(){
  $("#b01").click(function(){
  htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
  $("#myDiv").html(htmlobj.responseText);
  });
});
Nach dem Login kopieren

HTML-Code:

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button id="b01" type="button">Change Content</button>
Nach dem Login kopieren

Definition und Verwendung

Die Methode ajax() lädt Remote-Daten über HTTP-Anfragen.

Diese Methode ist die zugrunde liegende AJAX-Implementierung von jQuery. Einfache und benutzerfreundliche High-Level-Implementierungen finden Sie unter $.get, $.post usw. $.ajax() gibt das von ihm erstellte XMLHttpRequest-Objekt zurück. In den meisten Fällen müssen Sie diese Funktion nicht direkt manipulieren, es sei denn, Sie müssen weniger häufig verwendete Optionen für mehr Flexibilität manipulieren.

Im einfachsten Fall kann $.ajax() direkt ohne Parameter verwendet werden.

Hinweis: Alle Optionen können global über die Funktion $.ajaxSetup() festgelegt werden.

Syntax

jQuery.ajax([settings])
Nach dem Login kopieren

Parameter

Beschreibung

Einstellungen

Optional. Eine Sammlung von Schlüssel-Wert-Paaren, die zum Konfigurieren von Ajax-Anfragen verwendet werden.

Der Standardwert jeder Option kann über $.ajaxSetup() festgelegt werden.

Parameter

Optionen

Typ: Objekt

Optional. AJAX-Anfrageeinstellungen. Alle Optionen sind optional.

asynchron

Typ: Boolean

Standardwert: true. Standardmäßig sind alle Anfragen asynchron. Wenn Sie synchrone Anfragen senden müssen, legen Sie diese Option auf „false“ fest.

Beachten Sie, dass synchrone Anfragen den Browser sperren und andere Benutzervorgänge warten müssen, bis die Anfrage abgeschlossen ist, bevor sie ausgeführt werden können.

beforeSend(XHR)

Typ: Funktion

Funktion, die das XMLHttpRequest-Objekt vor dem Senden der Anfrage ändern kann, z. B. das Hinzufügen benutzerdefinierter HTTP-Header.

Das XMLHttpRequest-Objekt ist der einzige Parameter.

Dies ist eine Ajax-Veranstaltung. Wenn false zurückgegeben wird, kann diese Ajax-Anfrage abgebrochen werden.

Cache

Typ: Boolean

Standardwert: true, Standardwert ist false, wenn dataType „script“ und „jsonp“ ist. Auf „false“ setzen, um diese Seite nicht zwischenzuspeichern.

Neue Funktionen in jQuery 1.2.

complete(XHR, TS)

Typ: Funktion

Nach Abschluss der AnfrageRückruffunktion (wird aufgerufen, nachdem die Anfrage erfolgreich war oder fehlgeschlagen ist) .

Parameter: XMLHttpRequest-Objekt und eine Zeichenfolge, die den Anfragetyp beschreibt.

Dies ist eine Ajax-Veranstaltung.

contentType

Typ: String

Standardwert: „application/x-www-form-urlencoded“. Inhaltskodierungstyp beim Senden von Informationen an den Server.

Der Standardwert ist für die meisten Situationen geeignet. Wenn Sie einen Inhaltstyp explizit an $.ajax() übergeben, wird dieser definitiv an den Server gesendet (auch wenn keine Daten zum Senden vorhanden sind).

Kontext

Typ: Objekt

Dieses Objekt wird verwendet, um den Kontext von Ajax-bezogenen Rückruffunktionen festzulegen. Mit anderen Worten: Lassen Sie dies in der Rückruffunktion auf dieses Objekt zeigen (wenn dieser Parameter nicht festgelegt ist, zeigt dies auf den Optionsparameter, der beim Aufruf dieser AJAX-Anfrage übergeben wurde). Wenn Sie beispielsweise ein DOM-Element als Kontextparameter angeben, wird der Kontext der Erfolgsrückruffunktion auf dieses DOM-Element festgelegt.

So:

$.ajax({ url: "test.html", context: document.body, success: function(){
        $(this).addClass("done");
      }});
Nach dem Login kopieren

Daten

Typ: String

An den Server gesendete Daten. Wird automatisch in das Anforderungszeichenfolgenformat konvertiert. Wird in GET-Anfragen an die URL angehängt. Informationen zum Deaktivieren dieser automatischen Konvertierung finden Sie in der Beschreibung der ProcessData-Option. Muss im Schlüssel-/Wertformat vorliegen. Wenn es sich um ein Array handelt, weist jQuery verschiedenen Werten automatisch denselben Namen zu. Beispielsweise wird {foo:["bar1", "bar2"]} in '&foo=bar1&foo=bar2' konvertiert.

dataFilter

Typ: Funktion

Eine Funktion zur Vorverarbeitung der von Ajax zurückgegebenen Originaldaten. Geben Sie zwei Parameter an: Daten und Typ: Daten sind die von Ajax zurückgegebenen Originaldaten und Typ ist der dataType-Parameter, der beim Aufruf von jQuery.ajax bereitgestellt wird. Der von der Funktion zurückgegebene Wert wird von jQuery weiterverarbeitet.

dataType

Typ: String

Der Datentyp, der voraussichtlich vom Server zurückgegeben wird. Wenn nicht angegeben, trifft jQuery automatisch intelligente Entscheidungen basierend auf den MIME-Informationen des HTTP-Pakets. Beispielsweise wird der XML-MIME-Typ als XML erkannt. In 1.4 generiert JSON ein JavaScript-Objekt und das Skript führt das Skript aus. Die vom Server zurückgegebenen Daten werden dann basierend auf diesem Wert analysiert und an die Rückruffunktion übergeben. Verfügbare Werte:

"xml": Gibt ein XML-Dokument zurück, das mit jQuery verarbeitet werden kann.

"html": Gibt reine Text-HTML-Informationen zurück; das enthaltene Skript-Tag wird ausgeführt, wenn es in den Dom eingefügt wird.

"script": Gibt Nur-Text-JavaScript-Code zurück. Ergebnisse werden nicht automatisch zwischengespeichert. Es sei denn, der Parameter „Cache“ ist gesetzt. Hinweis: Bei Remote-Anfragen (nicht unter derselben Domäne) werden alle POST-Anfragen in GET-Anfragen umgewandelt. (Da zum Laden das DOM-Skript-Tag verwendet wird)

"json": Gibt JSON-Daten zurück.

"jsonp": JSONP-Format. Beim Aufrufen einer Funktion im JSONP-Format, z. B. „myurl?callback=?“, ersetzt jQuery automatisch ? durch den richtigen Funktionsnamen, um die Callback-Funktion auszuführen.

"text": Gibt eine Nur-Text-Zeichenfolge zurück

Fehler

Typ: Funktion

Standardwert: Automatische Beurteilung (XML oder HTML). Diese Funktion wird aufgerufen, wenn die Anfrage fehlschlägt.

verfügt über die folgenden drei Parameter: XMLHttpRequest-Objekt, Fehlermeldung und (optional) erfasstes Ausnahmeobjekt.

Wenn ein Fehler auftritt, kann die Fehlermeldung (der zweite Parameter) zusätzlich zu Null auch „timeout“, „error“, „notmodified“ und „parsererror“ lauten.

Dies ist eine Ajax-Veranstaltung.

global

Typ: Boolean

Gibt an, ob das globale AJAX-Ereignis ausgelöst werden soll. Standardwert: true. Bei der Einstellung „false“ werden keine globalen AJAX-Ereignisse wie ajaxStart oder ajaxStop ausgelöst, die zur Steuerung verschiedener Ajax-Ereignisse verwendet werden können.

ifModified

Typ: Boolean

Erhalten Sie nur neue Daten, wenn sich die Serverdaten ändern. Standardwert: false. Verwenden Sie zur Bestimmung die Header-Informationen „Zuletzt geändert“ des HTTP-Pakets. Ab jQuery 1.4 überprüft es auch das vom Server angegebene „etag“, um sicherzustellen, dass die Daten nicht geändert wurden.

jsonp

Typ: String

Schreiben Sie den Namen der Rückruffunktion in einer JSONP-Anfrage um. Dieser Wert wird verwendet, um den „Callback“-Teil des URL-Parameters in einer GET- oder POST-Anfrage wie {jsonp:'onJsonPLoad'} zu ersetzen, der dazu führt, dass „onJsonPLoad=?“ an den Server übergeben wird.

jsonpCallback

Typ: String

Geben Sie einen Rückruffunktionsnamen für die JSONP-Anfrage an. Dieser Wert wird anstelle des von jQuery automatisch generierten zufälligen Funktionsnamens verwendet. Dies wird hauptsächlich verwendet, um jQuery die Generierung eindeutiger Funktionsnamen zu ermöglichen, was die Verwaltung von Anforderungen erleichtert und außerdem bequem Rückruffunktionen und Fehlerbehandlung bereitstellt. Sie können diesen Rückruffunktionsnamen auch angeben, wenn der Browser GET-Anfragen zwischenspeichern soll.

Passwort

Typ: String

Passwort, das zur Beantwortung einer HTTP-Zugriffsauthentifizierungsanfrage verwendet wird

processData

Typ: Boolean

Standardwert: true. Standardmäßig werden die über die Datenoption übergebenen Daten, wenn es sich um ein Objekt handelt (technisch gesehen, solange es sich nicht um eine Zeichenfolge handelt), verarbeitet und in eine Abfragezeichenfolge konvertiert, die dem Standardinhaltstyp „application/x“ entspricht -www-form-urlencoded" ". Legen Sie „false“ fest, wenn Sie DOM-Bauminformationen oder andere Informationen senden möchten, die Sie nicht konvertieren möchten.

scriptCharset

Typ: String

Nur ​​wenn der Datentyp bei Anforderung „jsonp“ oder „script“ ist und der Typ „GET“ ist, wird er zum Erzwingen verwendet Änderung des Zeichensatzes. Wird normalerweise nur verwendet, wenn die lokalen und Remote-Inhaltskodierungen unterschiedlich sind.

Erfolg

Typ: Funktion

Rückruffunktion nach erfolgreicher Anfrage.

Parameter: Vom Server zurückgegebene und gemäß dem dataType-Parameter verarbeitete Daten; eine Zeichenfolge, die den Status beschreibt.

Dies ist eine Ajax-Veranstaltung.

traditionell

Typ: Boolean

Auf true setzen, wenn Sie Daten auf herkömmliche Weise serialisieren möchten. Bitte beachten Sie die jQuery.param-Methode in der Kategorie „Tools“.

Timeout

Typ: Zahl

Legen Sie das Anfrage-Timeout (Millisekunden) fest. Diese Einstellung überschreibt die globale Einstellung.

Typ

Typ: String

Standard: „GET“). Anforderungsmethode („POST“ oder „GET“), Standard ist „GET“. Hinweis: Andere HTTP-Anfragemethoden wie PUT und DELETE können ebenfalls verwendet werden, werden jedoch nur von einigen Browsern unterstützt.

URL

Typ: String

Standardwert: Aktuelle Seitenadresse. Die Adresse, an die die Anfrage gesendet werden soll.

Benutzername

Typ: Zeichenfolge

Benutzername, der zur Beantwortung von HTTP-Zugriffsauthentifizierungsanfragen verwendet wird.

xhr

Typ: Funktion

Muss ein XMLHttpRequest-Objekt zurückgeben. Der Standardwert ist ActiveXObject unter IE und ansonsten XMLHttpRequest. Wird verwendet, um ein erweitertes XMLHttpRequest-Objekt zu überschreiben oder bereitzustellen. Dieser Parameter war vor jQuery 1.3 nicht verfügbar.

Rückruffunktion

Wenn Sie die von $.ajax() erhaltenen Daten verarbeiten möchten, müssen Sie die Rückruffunktion verwenden: beforeSend, error, dataFilter, success, complete.

beforeSend

wird vor dem Senden der Anfrage aufgerufen und übergibt einen XMLHttpRequest als Parameter.

error

wird aufgerufen, wenn ein Anforderungsfehler auftritt. Durch Übergabe des XMLHttpRequest-Objekts wird eine Zeichenfolge, die den Fehlertyp beschreibt, und ein Ausnahmeobjekt (falls vorhanden)

dataFilter

aufgerufen, nachdem die Anforderung erfolgreich war. Übergeben Sie die zurückgegebenen Daten und den Wert des Parameters „dataType“. Und muss neue Daten (möglicherweise verarbeitet) zurückgeben, die an die Erfolgsrückruffunktion übergeben wurden.

success

wird nach der Anfrage aufgerufen. Übergeben Sie die zurückgegebenen Daten und eine Zeichenfolge mit dem Erfolgscode.

abgeschlossen

Diese Funktion wird aufgerufen, wenn die Anfrage abgeschlossen ist, unabhängig von Erfolg oder Misserfolg. Übergeben Sie das XMLHttpRequest-Objekt und eine Zeichenfolge mit einem Erfolgs- oder Fehlercode.

Datentyp

Die Funktion $.ajax() verlässt sich auf die vom Server bereitgestellten Informationen, um die zurückgegebenen Daten zu verarbeiten. Wenn der Server meldet, dass es sich bei den zurückgegebenen Daten um XML handelt, können die zurückgegebenen Ergebnisse mithilfe normaler XML-Methoden oder jQuery-Selektoren iteriert werden. Wenn andere Typen wie HTML angezeigt werden, werden die Daten als Text behandelt.

Sie können über die Option dataType auch andere unterschiedliche Datenverarbeitungsmethoden angeben. Neben einfachem XML können Sie auch HTML, JSON, JSONP, Script oder Text angeben.

Unter anderem werden die von Text- und XML-Typen zurückgegebenen Daten nicht verarbeitet. Die Daten übergeben einfach das Attribut „responseText“ oder „responsHTML“ des XMLHttpRequest an die Erfolgsrückruffunktion.

Hinweis: Wir müssen sicherstellen, dass der vom Webserver gemeldete MIME-Typ mit dem von uns ausgewählten Datentyp übereinstimmt. Im Fall von XML muss der Server beispielsweise text/xml oder application/xml deklarieren, um konsistente Ergebnisse zu erhalten.

Bei Angabe als HTML-Typ wird jegliches eingebettete JavaScript ausgeführt, bevor der HTML-Code als Zeichenfolge zurückgegeben wird. Ebenso wird bei Angabe des Skripttyps zuerst das serverseitig generierte JavaScript ausgeführt und dann das Skript als Textdaten zurückgegeben.

Bei Angabe als JSON-Typ werden die erhaltenen Daten als JavaScript-Objekt analysiert und das erstellte Objekt als Ergebnis zurückgegeben. Um dies zu erreichen, wird zunächst versucht, JSON.parse() zu verwenden. Wenn der Browser dies nicht unterstützt, wird eine Funktion zum Erstellen verwendet.

JSON-Daten sind eine Art strukturierte Daten, die einfach über JavaScript analysiert werden können. Wenn die erhaltene Datendatei auf einem Remote-Server gespeichert ist (mit unterschiedlichen Domänennamen, d. h. domänenübergreifende Datenerfassung), müssen Sie den Typ jsonp verwenden. Durch die Verwendung dieses Typs wird ein Abfragezeichenfolgenparameter „callback=?“ erstellt, der an die angeforderte URL angehängt wird. Der Server sollte den Namen der Rückruffunktion vor den JSON-Daten hinzufügen, um eine gültige JSONP-Anfrage abzuschließen. Wenn Sie den Parameter Name der Rückruffunktion angeben möchten, um den Standardrückruf zu ersetzen, können Sie den jsonp-Parameter von $.ajax() festlegen.

Hinweis: JSONP ist eine Erweiterung des JSON-Formats. Es erfordert serverseitigen Code, um Abfragezeichenfolgenparameter zu erkennen und zu verarbeiten.

Wenn der Skript- oder JSONP-Typ angegeben ist, wird beim Empfang von Daten vom Server tatsächlich das

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage