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.
Grammatik
jQuery.ajax([settings])
Parameter | 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. <🎜> |
---|
jQuery.get()
使用一个HTTP GET 请求从服务器加载数据。
jQuery.get(url [,data] [,success(data,textStatus,jqXHR)] [dtaType])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
dataType 从服务器返回的预期数据。
用法:
$.get("test.cgi", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
jQuery.getJSON()
使用一个HTTP GET 请求服务器加载JSON 编码的数据。
jQuery.getJSON(url [,data] [,success(data,textStatus,jqXHR)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
jQuery.getScript()
使用一个HTTP GET请求从服务器加载并执行一个JavaScript文件。
jQuery.getScript(url[success(script,textStatus,jqXHR)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
用法:
$.getScript("ajax/test.js", function(data, textStatus, jqxhr) { console.log(data); //data returned console.log(textStatus); //success console.log(jqxhr.status); //200 console.log('Load was performed.'); });
jQuery.post([settings])
使用一个HTTP POST请求从服务器加载数据。
jQuery.post(url[,data][,success(data,textStatus,jqXHR)][,dataType])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
用法:
$.post("test.php", { name: "John", time: "2pm" }, function(data) { alert("Data Loaded: " + data); });
.load()
从服务器载入数据并且将返回的HTML代码并插入至匹配的元素中。
.load(url[,data][,complete(responseText,textStatus,XMLHttpRequest)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
complete 当请求成功时回调的函数
用法:
$('#result').load('ajax/test.html #container');
jQuery.ajax()
执行一个异步的HTTP(ajax)的请求。
参数:
url 类型: Sting 发送请求的地址(默认当前页面)
type 类型:Sting (默认为GET) 请求方式(”POST“或”GET“)
timeout 类型:Number 设置请求超时时间(毫秒),此设置默认覆盖全局。
async 类型:Boolean 默认设置(true)默认设置下所有请求均为一步请求,如果需要同步请求,设置为false。
beforeSend 类型:function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。
cache 类型:Boolean 默认为(true) 设置为false 将不会从浏览器缓存中加载请求信息。
complete 类型:Function 请求完成后回调函数,(请求成功或失败时均调用)参数: XMLHttpRequest 对象,成功信息字符串。function ( XMLHttpRequest, textStatus) {this; // the options for this ajax request}
contentType 类型为:String 发送信息至服务器时内容编码类型,默认值适合大多数应用场合。
data 类型:Object String 发送到服务器的数据。将自动转换为请求字符串格式,GET请求附加在URL后
dataType 类型:String 预期服务器返回的数据类型, ”xml“返回XML文档。”html“返回纯文本信息,包含script 元素。”script“返回纯文本JavaScript 代码,不会自动缓存 结果。”json“返回JSON 数组。”jsonp“JSONP格式。
error 类型:function 请求失败时将调用此方法。
global 类型:Boolean 是否触发全局AJAX事件。默认为(true) 设置为false 将不会触发全局ajax 事件,可用于控制不同的AJAX事件。
ifModified 类型:Boolean 默认为false 仅在服务器数据改变时获取新数据。
processData 类型:Boolean 默认为(true)默认情况下,发送的数据发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form- urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
success 类型:Function 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态。
$(document).ready(function() { jQuery("#clearCac").click(function() { jQuery.ajax({ url: "/Handle/Do.aspx", type: "post", data: { id: '0' }, dataType: "json", success: function(msg) { alert(msg); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, complete: function(XMLHttpRequest, textStatus) { this; // 调用本次AJAX请求时传递的options参数 } }); }); });
Der erste vom Fehlerereignis zurückgegebene Parameter XMLHttpRequest enthält einige nützliche Informationen:
XMLHttpRequest.readyState:
Statuscode
0 – (Nicht initialisiert) Die send()-Methode wurde noch nicht aufgerufen
1 – (Laden) Die send()-Methode wurde aufgerufen und die Anfrage wird gesendet
2 – (Laden abgeschlossen) Die send()-Methode wurde ausgeführt und der gesamte Antwortinhalt wurde empfangen
3 – (Interaktives) Analysieren des Antwortinhalts
4 – (Abgeschlossen) Die Analyse des Antwortinhalts ist abgeschlossen und kann auf dem Client aufgerufen werden
XMLHttpRequest.status:
1xx-Informationsaufforderung
Diese Statuscodes weisen auf vorläufige Antworten hin. Der Kunde sollte darauf vorbereitet sein, eine oder mehrere 1xx-Antworten zu erhalten, bevor er eine reguläre Antwort erhält.
100-weiter.
101-Switch-Protokoll.
2xx-Erfolg
Diese Art von Statuscode zeigt an, dass der Server die Client-Anfrage erfolgreich angenommen hat.
200-OK. Die Kundenanfrage war erfolgreich.
201-Erstellt.
202-Akzeptiert.
203 – Nicht verbindliche Informationen.
204-Kein Inhalt.
205-Inhalt zurücksetzen.
206-Teil des Inhalts.
3xx-Redirect
Der Client-Browser muss zusätzliche Maßnahmen ergreifen, um die Anforderung zu erfüllen. Beispielsweise muss der Browser möglicherweise eine andere Seite auf dem Server anfordern oder die Anfrage über einen Proxyserver wiederholen.
301 – Das Objekt wurde dauerhaft verschoben, also dauerhaft umgeleitet.
302 – Das Objekt wurde vorübergehend verschoben.
304 – Nicht geändert.
307 – Temporäre Weiterleitung.
4xx-Client-Fehler
Es ist ein Fehler aufgetreten und es scheint ein Problem mit dem Client zu bestehen. Beispielsweise fordert der Client eine Seite an, die nicht existiert, und stellt keine gültigen Authentifizierungsinformationen bereit. 400 – Ungültige Anfrage.
401 – Zugriff verweigert. IIS definiert viele verschiedene 401-Fehler, die auf spezifischere Fehlerursachen hinweisen. Diese spezifischen Fehlercodes werden im Browser angezeigt, jedoch nicht in den IIS-Protokollen:
401.1 – Anmeldung fehlgeschlagen.
401.2 – Serverkonfiguration verursachte Anmeldefehler.
401.3 – Aufgrund der ACL-Einschränkung der Ressource nicht autorisiert.
401.4 – Filterautorisierung fehlgeschlagen.
401.5-ISAPI/CGI-Anwendungsautorisierung fehlgeschlagen.
401.7 – Der Zugriff wird durch die URL-Autorisierungsrichtlinie auf dem Webserver verweigert. Dieser Fehlercode ist spezifisch für IIS6.0.
403 – Verboten: IIS definiert eine Reihe verschiedener 403-Fehler, die auf spezifischere Fehlerursachen hinweisen:
403.1 – Ausführungszugriff verboten.
403.2 – Lesezugriff verboten.
403.3 – Schreibzugriff verboten.
403.4 – SSL erforderlich.
403.5 – SSL128 erforderlich.
403.6 – IP-Adresse abgelehnt.
403.7 – Client-Zertifikat erforderlich.
403.8 – Site-Zugriff verweigert.
403.9 – Zu viele Benutzer.
403.10 – Ungültige Konfiguration.
403.11-Passwortänderung.
403.12 – Zugriff auf Zuordnungstabelle verweigert.
403.13 – Client-Zertifikat widerrufen.
403.14 – Verzeichniseintrag verweigert.
403.15 – Client-Zugriffsberechtigung überschritten.
403.16 – Client-Zertifikat ist nicht vertrauenswürdig oder ungültig.
403.17 – Das Client-Zertifikat ist abgelaufen oder noch nicht gültig.
403.18 – Die angeforderte URL kann im aktuellen Anwendungspool nicht ausgeführt werden. Dieser Fehlercode ist spezifisch für IIS6.0.
403.19 – CGI kann für Clients in diesem Anwendungspool nicht ausgeführt werden. Dieser Fehlercode ist spezifisch für IIS6.0.
403.20-Passport-Anmeldung fehlgeschlagen. Dieser Fehlercode ist spezifisch für IIS6.0.
404 – Nicht gefunden.
404.0-(Keine) – Datei oder Verzeichnis nicht gefunden.
404.1 – Auf die Website kann über den angeforderten Port nicht zugegriffen werden.
404.2 – Diese Anfrage wird durch die Sperrrichtlinie für Webdienste-Erweiterungen blockiert.
Die 404.3-MIME-Zuordnungsrichtlinie blockiert diese Anfrage.
405-Das für den Zugriff auf diese Seite verwendete HTTP-Verb ist nicht zulässig (Methode nicht zulässig)
406 – Der Client-Browser akzeptiert den MIME-Typ der angeforderten Seite nicht.
407 – Proxy-Authentifizierung erforderlich.
412 – Vorbedingung fehlgeschlagen.
413 – Die Anforderungsentität ist zu groß.
414 – Anforderungs-URI zu lang.
415 – Nicht unterstützter Medientyp.
416 – Der angeforderte Bereich kann nicht erfüllt werden.
417 – Ausführung fehlgeschlagen.
423 – Gesperrter Fehler.
5xx-Serverfehler
Der Server konnte die Anfrage nicht abschließen, da ein Fehler aufgetreten ist.
500 – Interner Serverfehler.
500.12 – Die Anwendung wird gerade auf dem Webserver neu gestartet.
500.13 – Der Webserver ist zu ausgelastet.
500.15 – Eine direkte Anfrage an Global.asa ist nicht zulässig.
500.16 – Falsche UNC-Autorisierungsdaten. Dieser Fehlercode ist spezifisch für IIS6.0.
500.18 – Der URL-Autorisierungsspeicher kann nicht geöffnet werden. Dieser Fehlercode ist spezifisch für IIS6.0.
500.100 – Interner ASP-Fehler.
501 – Header-Wert gibt eine nicht implementierte Konfiguration an.
502 – Der Webserver hat eine ungültige Antwort erhalten, während er als Gateway oder Proxyserver fungierte.
Zeitüberschreitung bei der 502.1-CGI-Anwendung.
502.2-CGI-Anwendungsfehler. Anwendung.
503-Dienst nicht verfügbar. Dieser Fehlercode ist spezifisch für IIS6.0.
504-Gateway-Timeout.
505 – HTTP-Version wird nicht unterstützt.
jQuery.param()
Erstellt ein Array, ein einfaches Objekt oder eine serialisierte Darstellung eines jQuery-Objekts zur Verwendung mit URL-Abfragezeichenfolgen oder Ajax-Anfragen.
jQuery.param(obj)
obj Ein Array für die Serialisierung, ein normales Objekt oder ein jQuery-Objekt.
jQuery.param( obj, traditionell)
obj Ein Array für die Serialisierung, ein normales Objekt oder ein jQuery-Objekt.
traditionell
Ein boolescher Wert, der angibt, ob eine herkömmliche „flache“ Serialisierung durchgeführt wird.
$.param({ a: [2,3,4] }) // "a[]=2&a[]=3&a[]=4"
$.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d []=4&d[2][e]=5"