$.post und $.get sind einfache Methoden. Wenn Sie mit komplexer Logik umgehen möchten, müssen Sie dennoch jQuery.ajax() verwenden
1. Allgemeines Format von $.ajax
$.ajax({ type: 'POST', url: url , data: data , success: success , dataType: dataType });
2. Parameterbeschreibung von $.ajax
Parameterbeschreibung
URL | Erforderlich. Gibt die URL an, an die die Anfrage gesendet werden soll. | ||||||||
Daten | Optional. Karten- oder Zeichenfolgenwert. Gibt die Daten an, die mit der Anfrage an den Server gesendet werden sollen. | ||||||||
success(data, textStatus, jqXHR) | Optional. Die Rückruffunktion wird ausgeführt, wenn die Anfrage erfolgreich ist. | ||||||||
dataType |
|
三、$.ajax需要注意的一些地方:
1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。
2.$.ajax只提交form以文本方式,如果异步提交包含
四、$.ajax我的实际应用例子
//1.$.ajax带json数据的异步请求 var aj = $.ajax( { url:'productManager_reverseUpdate',// 跳转到 action data:{ selRollBack : selRollBack, selOperatorsCode : selOperatorsCode, PROVINCECODE : PROVINCECODE, pass2 : pass2 }, type:'post', cache:false, dataType:'json', success:function(data) { if(data.msg =="true" ){ // view("修改成功!"); alert("修改成功!"); window.location.reload(); }else{ view(data.msg); } }, error : function() { // view("异常!"); alert("异常!"); } }); //2.$.ajax序列化表格内容为字符串的异步请求 function noTips(){ var formParam = $("#form1").serialize();//序列化表格内容为字符串 $.ajax({ type:'post', url:'Notice_noTipsNotice', data:formParam, cache:false, dataType:'json', success:function(data){ } }); } //3.$.ajax拼接url的异步请求 var yz=$.ajax({ type:'post', url:'validatePwd2_checkPwd2?password2='+password2, data:{}, cache:false, dataType:'json', success:function(data){ if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间 { textPassword2.html("<font color='red'>业务密码不正确!</font>"); $("#validatePassword2").val("pwd2Error"); checkPassword2 = false; return; } }, error:function(){} }); //4.$.ajax拼接data的异步请求 $.ajax({ url:'<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action', type:'post', data:'merName='+values, async : false, //默认为true 异步 error:function(){ alert('error'); }, success:function(data){ $("#"+divs).html(data); } });
URL: Die Anforderung ist ein Parameter vom Typ String (Standard ist die aktuelle Seitenadresse), die Adresse, an die die Anfrage gesendet wird.
Typ: Der Parameter muss vom Typ String sein und die Anforderungsmethode (post oder get) ist standardmäßig get. Beachten Sie andere HTTP-Anfragemethoden wie put und
Löschen kann ebenfalls verwendet werden, wird jedoch nur von einigen Browsern unterstützt.
Timeout: Es muss sich um einen Parameter vom Typ „Nummer“ handeln. Legen Sie das Anforderungszeitlimit (Millisekunden) fest. Diese Einstellung überschreibt die globale Einstellung der Methode $.ajaxSetup()
Eingestellt.
async: erfordert Parameter vom Typ Boolean, die Standardeinstellung ist true und alle Anforderungen sind asynchrone Anforderungen.
Setzen Sie diese Option auf „false“, wenn Sie synchrone Anfragen senden müssen. Beachten Sie, dass synchrone Anfragen den Browser sperren und der Benutzer auf andere Vorgänge warten muss
Es kann erst ausgeführt werden, nachdem die Anfrage abgeschlossen ist.
Cache: erfordert Parameter vom Typ Boolean, der Standardwert ist „true“ (wenn dataType „script“ ist, ist der Standardwert „false“).
Bei der Einstellung „false“ werden keine Anforderungsinformationen aus dem Browser-Cache geladen.
Daten: Erfordert Parameter vom Typ Objekt oder Zeichenfolge, an den Server gesendete Daten. Wenn es sich nicht um eine Zeichenfolge handelt, wird sie automatisch in ein Zeichenfolgenformat
konvertiertFormel. Die Get-Anfrage wird an die URL angehängt. Um diese automatische Konvertierung zu verhindern, aktivieren Sie die Option „processData“. Das Objekt muss im Schlüssel/Wert-Format vorliegen
Formel, zum Beispiel {foo1:"bar1",foo2:"bar2"} wird in &foo1=bar1&foo2=bar2 konvertiert. Wenn es sich um ein Array handelt, unterscheidet sich JQuery automatisch
Werte entsprechen dem gleichen Namen. Beispielsweise wird {foo:["bar1","bar2"]} in &foo=bar1&foo=bar2 konvertiert.
dataType: Parameter, die vom Typ String sein müssen, dem Datentyp, der voraussichtlich vom Server zurückgegeben wird. Wenn nicht angegeben, basiert JQuery das http-Paket automatisch auf mime
Die Informationen werden als ResponseXML oder ResponseText zurückgegeben und als Callback-Funktionsparameter übergeben.
Verfügbare Typen sind wie folgt:
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 das DOM eingefügt wird.
Skript: Gibt JavaScript-Code im Klartext zurück. Ergebnisse werden nicht automatisch zwischengespeichert. Es sei denn, Cache-Parameter sind festgelegt. Beachten Sie, dass bei Remote-Anfragen
(nicht unter derselben Domain), alle Post-Anfragen werden in Get-Anfragen umgewandelt.
json: Gibt JSON-Daten zurück.
jsonp: JSONP-Format. Wenn Sie eine Funktion mit dem SONP-Formular aufrufen, z. B. myurl?callback=?, ersetzt JQuery automatisch das letzte
„?“ ist der richtige Funktionsname zum Ausführen der Callback-Funktion.
text: Gibt eine einfache Textzeichenfolge zurück.
beforeSend: Der Parameter muss ein Funktionstyp sein. Sie können die Funktion des XMLHttpRequest-Objekts vor dem Senden der Anfrage ändern, z. B. durch Hinzufügen eines benutzerdefinierten
HTTP-Header. Wenn in beforeSend false zurückgegeben wird, kann diese Ajax-Anfrage abgebrochen werden. Das XMLHttpRequest-Objekt ist der einzige Parameter
Nummer.
function(XMLHttpRequest){
this; //Die beim Aufruf dieser Ajax-Anfrage übergebenen Optionsparameter
}
vollständig: Der Parameter muss vom Typ Funktion sein und die Rückruffunktion wird aufgerufen, nachdem die Anforderung abgeschlossen ist (wird aufgerufen, wenn die Anforderung erfolgreich ist oder fehlschlägt).
Parameter: XMLHttpRequest-Objekt und eine Zeichenfolge, die den erfolgreichen Anforderungstyp beschreibt.
function(XMLHttpRequest, textStatus){
this; //Die beim Aufruf dieser Ajax-Anfrage übergebenen Optionsparameter
}
Erfolg: Der Parameter muss vom Typ Funktion sein. Die nach erfolgreicher Anforderung aufgerufene Rückruffunktion verfügt über zwei Parameter.
(1) Vom Server zurückgegebene und gemäß dem dataType-Parameter verarbeitete Daten.
(2) Eine Zeichenfolge, die den Status beschreibt.
function(data, textStatus){
//Daten können xmlDoc, jsonObj, HTML, Text usw. sein.
this; //Die beim Aufruf dieser Ajax-Anfrage übergebenen Optionsparameter
Fehler: Der Parameter muss vom Typ Funktion sein und die Funktion wird aufgerufen, wenn die Anforderung fehlschlägt. Diese Funktion hat 3 Parameter, nämlich XMLHttpRequest-Objekt, Fehler
Fehlermeldung, erfasstes Fehlerobjekt (optional).
Die Ajax-Ereignisfunktion lautet wie folgt:
function(XMLHttpRequest, textStatus, errorThrown){
//Normalerweise enthält nur einer von textStatus und errorThrown Informationen
this; //Die beim Aufruf dieser Ajax-Anfrage übergebenen Optionsparameter
}
contentType: erfordert einen Parameter vom Typ String. Beim Senden von Informationen an den Server ist der Inhaltskodierungstyp standardmäßig
ist „application/x-www-form-urlencoded“. Dieser Standardwert ist für die meisten Anwendungen geeignet.
dataFilter: erfordert Parameter vom Typ Funktion, eine Funktion, die die von Ajax zurückgegebenen Originaldaten vorverarbeitet.
Geben Sie zwei Parameter an: Daten und Typ. Daten sind die von Ajax zurückgegebenen Originaldaten, und der Typ wird beim Aufruf von jQuery.ajax
bereitgestelltdataType-Parameter. Der von der Funktion zurückgegebene Wert wird von jQuery weiterverarbeitet.
Funktion(Daten, Typ){
//Gib die verarbeiteten Daten zurück
Rückgabedaten;
}
global: erfordert Parameter vom Typ Boolean, der Standardwert ist true. Gibt an, ob das globale Ajax-Ereignis ausgelöst werden soll. Bei der Einstellung „false“ wird das globale
nicht ausgelöstAjax-Ereignisse, ajaxStart oder ajaxStop können zur Steuerung verschiedener Ajax-Ereignisse verwendet werden.
ifModified: erfordert einen booleschen Typparameter, der Standardwert ist false. Erhalten Sie neue Daten nur, wenn sich Serverdaten ändern.
Die Grundlage für die Beurteilung von Serverdatenänderungen sind die Header-Informationen „Last-Modified“. Der Standardwert ist false, was bedeutet, dass Header-Informationen ignoriert werden.
jsonp: erfordert Parameter vom Typ String, schreibt den Namen der Rückruffunktion in einer JSONP-Anfrage neu.
该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如
{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
username:要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
password:要求为String类型的参数,用于响应HTTP访问认证请求的密码。
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度
来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM
树信息或者其他不希望转换的信息,请设置为false。
scriptCharset:要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时
才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。
案例代码:
$(function(){ $('#send').click(function(){ $.ajax({ type: "GET", url: "test.json", data: {username:$("#username").val(), content:$("#content").val()}, dataType: "json", success: function(data){ $('#resText').empty(); //清空resText里面的所有内容 var html = ''; $.each(data, function(commentIndex, comment){ html += '' + comment['username']+ ':+ ''; }); $('#resText').html(html); } }); }); });
顺便说一下$.each()函数:
$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。
以上这篇jQuery Ajax 实例代码 ($.ajax、$.post、$.get)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。