Heim > Artikel > Web-Frontend > Zusammenfassung der Verwendung von $.post und $.ajax in Jquery
Verwendung von Jquerys $.ajax:
jQuery.ajax( Optionen): Laden Sie Remote-Daten über HTTP-Anfragen. Dies 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 dieses Objekt nicht direkt bearbeiten, in besonderen Fällen kann es jedoch zum manuellen Beenden der Anforderung verwendet werden.
Hinweis: Wenn Sie die Option dataType angeben, stellen Sie sicher, dass der Server die richtigen MIME-Informationen zurückgibt (z. B. gibt XML „text/xml“ zurück). Falsche MIME-Typen können unvorhersehbare Fehler verursachen. Siehe Angeben des Datentyps für AJAX-Anfragen.
Wenn der Datentyp auf „Skript“ eingestellt ist, werden alle Remote-POST-Anfragen (nicht in derselben Domäne) in GET konvertiert.
$.ajax() hat nur einen Parameter: Parameterschlüssel/Wertobjekt, einschließlich aller Konfigurations- und Rückruffunktionsinformationen. Detaillierte Parameteroptionen finden Sie weiter unten.
In jQuery 1.2 können Sie JSON-Daten domänenübergreifend laden. Bei der Verwendung müssen Sie den Datentyp auf JSONP einstellen. Beim Aufrufen einer Funktion im JSONP-Format, z. B. „myurl?callback=?“, ersetzt jQuery automatisch ? durch den richtigen Funktionsnamen, um die Callback-Funktion auszuführen. Wenn der Datentyp auf „jsonp“ eingestellt ist, ruft jQuery automatisch die Rückruffunktion auf. (Ich verstehe das nicht sehr gut)
jquery Ajax-Parameterliste:
url(String)
(Standard: aktuelle Seitenadresse) Die Adresse zum Senden der Anfrage.
Typ(String)
Anforderungsmethode (es gibt zwei Parameter: „POST“ und „GET“), der Standardwert ist „GET“. Hinweis: Andere HTTP-Anfragemethoden wie PUT und DELETE können ebenfalls verwendet werden, werden jedoch nur von einigen Browsern unterstützt.
Timeout (Anzahl)
Legen Sie das Anfrage-Timeout (Millisekunden) fest. Diese Einstellung überschreibt die globale Einstellung.
async(Boolean)
(Standard: true) Wenn auf true gesetzt, sind alle Anfragen asynchrone Anfragen. Wenn Sie synchrone Anfragen senden müssen, legen Sie diese Option auf „false“ fest. Beachten Sie, dass eine synchrone Anfrage den Browser sperrt und der Benutzer warten muss, bis die Anfrage abgeschlossen ist, bevor andere Vorgänge ausgeführt werden können.
beforeSend(Function)
Sie können die Funktionen des XMLHttpRequest-Objekts vor dem Senden der Anfrage ändern, z. B. das Hinzufügen benutzerdefinierter HTTP-Header. Das XMLHttpRequest-Objekt ist der einzige Parameter.
function(XMLHttpRequest){ this; // the options for this ajax request} cache(Boolean)
Gibt an, ob die Anforderungsergebnisse zwischengespeichert werden sollen (Standard). :true) Wenn Sie es auf „false“ setzen, werden die Anforderungsinformationen nicht aus dem Browser-Cache geladen. Beachten Sie, dass es am besten ist, es in den frühen Entwicklungsstadien auf „false“ zu setzen, da das Debuggen sonst unpraktisch ist.
complete(Function)
Rückruffunktion nach Abschluss der Anfrage (wird aufgerufen, wenn die Anfrage erfolgreich ist oder fehlschlägt). Parameter: XMLHttpRequest-Objekt, Erfolgsinformationszeichenfolge.
function(XMLHttpRequest,textStatus){ this;//theoptionsforthisajaxrequest }
contentType(String)
( Standard: „ application/x-www-form-urlencoded“) Typ der Inhaltskodierung beim Senden von Informationen an den Server. Der Standardwert ist für die meisten Anwendungen geeignet.
data(Object,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/Wert-Format 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.
dataType(String)
Definieren Sie den vom Server zurückgegebenen Datentyp. Wenn nicht angegeben, gibt jQuery automatisch ResponseXML oder ResponseText basierend auf den MIME-Informationen des HTTP-Pakets zurück und übergibt sie als Callback-Funktionsparameter:
"xml": Gibt Daten im XML-Format zurück, die von jQuery verarbeitet werden können.
„html“: Gibt Nur-Text-HTML-Formatdaten zurück; sie können Skriptelemente enthalten.
"script": Gibt Nur-Text-JavaScript-Code zurück. Ergebnisse werden nicht automatisch zwischengespeichert.
"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.
error(Function)
(Standard: automatische Beurteilung (XML oder HTML)) Diese Methode wird aufgerufen, wenn die Anfrage fehlschlägt. Diese Methode benötigt drei Parameter: das XMLHttpRequest-Objekt, die Fehlermeldung und (möglicherweise) das erfasste Fehlerobjekt.
Der Code lautet wie folgt
function(XMLHttpRequest,textStatus,errorThrown){ //通常情况下textStatus和errorThown只有其中一个有值 this;//theoptionsforthisajaxrequest }
global(Boolean)
是否触发全局 AJAX 事件(默认: true) 。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件
ifModified(Boolean)
(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。
processData(Boolean)
设置发送数据的信息格式(默认: true),设置为 true 的时候发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
success(Function)
请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
代码如下:
function(data,textStatus){ //datacouldbexmlDoc,jsonObj,html,text,etc... this;//theoptionsforthisajaxrequest }
下面以一则示例解释一下该方法的具体的用法:
$.ajax({ type:'get', url:'http://www.www.daimajiayuan.com/rss', beforeSend:function(XMLHttpRequest){ //ShowLoading(); }, success:function(data,textStatus){ $('.ajax.ajaxResult').html(''); $('item',data).each(function(i,domEle){ $('.ajax.ajaxResult').append(''+$(domEle).children('title').text()+''); }); }, complete:function(XMLHttpRequest,textStatus){ //HideLoading(); }, error:function(){ //请求出错处理 } });
Jquery的$.post的用法:
3. jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求
jquery $.post 方法参数列表(说明):
url (String) : 发送请求的URL地址.
data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,可将此值放到url中。
callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才能调用该方法)。
type (String) : (可选)客户端请求的数据类型(JSON,XML,等等)
这是一个简单的 POST 请求功能以取代复杂 $.ajax ,请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
下面是一个使用$.post的简单示例代码:
$.post( 'http://www.daimajiayuan.com/ajax.php', {Action:"post",Name:"lulu"}, function(data,textStatus){ //data可以是xmlDoc,jsonObj,html,text,等等. //this;//这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this alert(data.result); }, "json"//这里设置了请求的返回格式为"json" );
如果你设置了请求的格式为"json",此时你没有设置Response回来的ContentType 为:Response.ContentType = "application/json"; 那么你将无法捕捉到返回的数据。
注意,上面的示例中 alert(data.result); 由于设置了Accept报头为"json",这里返回的data就是一个对象,因此不需要用eval()来转换为对象。
以上所述就是本文的全部内容了,希望大家能够喜欢。
【相关教程推荐】
1. JavaScript视频教程
2. JavaScript在线手册
3. bootstrap教程