JQuery對Ajax操作進行了封裝, \$.ajax() 方法屬於最底層的方法,第2層是 load() 、 \$.get() 、 \$.post() 方法,第3層是 \$.getScript() 和 \$.getJSON() 方法。 \$.get() 方法和 \$.post() 方法是jQuery ...
JQuery對Ajax操作進行了封裝,$.ajax()方法屬於最底層的方法,第2層是load()、$.get()、$.post()方法,第3層是$.getScript()和$.getJSON()方法。
$.get()方法和$.post()方法是jQuery中的全局函數。
load()方法
描述
可以載入遠程HTML代碼並插入DOM中。
load(url, [data], [callback])
url為請求HTML頁面的URL地址,data為發送至伺服器的key/value數據,callback為請求完成時的回調函數,無論請求成功或失敗。
還可以篩選載入的HTML文檔:為URL參數指定選擇符。
load()方法的URL參數的語法結構為"url selector"。如果URL參數的字元串中包含一個或多個空格,那麼第一個空格後面的內容,會被當成是jQuery 的選擇器,從而決定應該載入返回結果中的哪部分內容。
傳遞方式
load()方法的傳遞方式根據參數data來自動指定。預設採用GET方式傳遞;如果有參數傳遞,則會自動轉換為POST方式。
//無參數傳遞,為GET方式
$("#resText").load("test.php",function(){
// body...
});
//有參數傳遞,為POST方式
$("#resText").load("test.php",{name:"rain", age:"22"},function () {
// body...
});
回調函數
對於必須在載入完成後才能繼續的操作
callback(responseText, textStatus, XMLHttpRequest)
responseText為請求返回的內容,textStatus為請求狀態(success、error、notmodified、timeout4種),XMLHttpRequest為一個XMLHttpRequest對象。
註意:在load()方法中,無論Ajax請求是否成功,只要當請求完成(complete)後,回調函數就被觸發。
$.get()方法和$.post()方法
load()方法通常用來從Web伺服器上貨去靜態的數據文件。如果需要傳遞一些參數給伺服器中的頁面,就可以使用$.get()和$.post()方法(或者$.ajax())。
$.get()方法
$.get()方法使用GETR方式來進行非同步請求。
$.get(url, [data], [callback(data, textStatus, jqXHR)], [dataType])
\\url: 請求HTML頁面的URL地址
\\data: 發送至伺服器的key/value數據
\\callback(): 載入成功時的回調函數
\\dataType: 伺服器端返回內容的格式,包括xml、html、script、json、text和_default
回調函數callback(data,textStatus,jqXHR)中,data為返回的內容,可以是XML文檔、JSON文件、HTML片段等等,textStatus為請求狀態(success、error、notmodified、timeout)。
$.post()方法
用ajax傳遞一個表單並把結果在一個div中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<form action="#" id="usrForm">
<input type="text" name="usrname" placeholder="請輸入用戶名">
<input type="submit" value="OK">
</form>
<div id="result">
</div>
<script type="text/javascript">
$(funciton(){
$("#usrForm").submit(function(event){
//防止重覆點提交按鈕
event.preventDefault();
var url = $("#usrForm").attr("action");
$.post(url,{
usrname: $(this).find("input[name=usrname]").val();
},function(data,textStatus){
var content = $( data ).find("#content");
$("#result").empty().append(content);
}
});
});
</script>
</body>
</html>
$.getScript()方法和$.getJson()方法
$.getScript()方法
使用一個HTTP GET請求從伺服器載入並執行一段JavaScript代碼。
$.getScript( url [, success(script, textStatus, jqXHR) ] )
success()為回調函數,在JavaScript文件成功載入後運行。
$.getJson()方法
使用一個HTTP GET請求從伺服器載入JSON編碼的數據。
jQuery.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] )
如果URL包含字元串“callback=?”(或類似的參數,取決於伺服器端 API 是如何定義的),這個請求被視為JSONP形式請求。