JQuery AJAX $.ajax()方法
來源:程序員人生 發布時間:2015-01-06 08:33:34 閱讀次數:3428次
AJAX = Asynchronous JavaScript and XML.
AJAX 是1種創建快速動態網頁的技術。
AJAX 通過在后臺與服務器交換少許數據的方式,允許網頁進行異步更新。這意味著有可能在不重載全部頁面的情況下,對網頁的1部份進行更新。
JQuery腳本庫里所提供的AJAX提交的方法有很多,但主要的方法有$.get(),$.post(),$.ajax()。其中$.ajax()是前兩種方法的底層實現,可以提供比前二者更多的屬性與參數設置,如果需要高級的設置使用,建議使用$.ajax()方法。
【轉載使用,請注明出處:http://blog.csdn.net/mahoking】
學習$.get()方法
學習$.post()方法
學習$.ajax()方法
$.ajax()方法
ajax() 方法通過 HTTP 要求加載遠程數據。
該方法是 jQuery 底層 AJAX 實現。簡單易用的高層實現見 $.get, $.post 等。$.ajax() 返回其創建的 XMLHttpRequest 對象。大多數情況下你無需直接操作該函數,除非你需要操作不經常使用的選項,以取得更多的靈活性。最簡單的情況下,$.ajax() 可以不帶任何參數直接使用。
語法:
jQuery.ajax([settings])
注釋:
settings
可選。用于配置 Ajax 要求的鍵值對集合。
可以通過 $.ajaxSetup() 設置任何選項的默許值。
參數:
options
類型:Object
可選。AJAX 要求設置。所有選項都是可選的。
async
類型:Boolean
默許值: true。默許設置下,所有要求均為異步要求。如果需要發送同步要求,請將此選項設置為 false。
注意,同步要求將鎖住閱讀器,用戶其它操作必須等待要求完成才可以履行。
beforeSend(XHR)
類型:Function
發送要求前可修改 XMLHttpRequest 對象的函數,如添加自定義 HTTP 頭。
XMLHttpRequest 對象是唯1的參數。
這是1個 Ajax 事件。如果返回 false 可以取消本次 ajax 要求。
cache
類型:Boolean
默許值: true,dataType 為 script 和 jsonp 時默許為 false。設置為 false 將不緩存此頁面。
jQuery 1.2 新功能。
complete(XHR, TS)
類型:Function
要求完成后回調函數 (要求成功或失敗以后均調用)。
參數: XMLHttpRequest 對象和1個描寫要求類型的字符串。
這是1個 Ajax 事件。
contentType
類型:String
默許值: "application/x-www-form-urlencoded"。發送信息至服務器時內容編碼類型。
默許值合適大多數情況。如果你明確地傳遞了1個 content-type 給 $.ajax() 那末它一定會發送給服務器(即便沒有數據要發送)。
context
類型:Object
這個對象用于設置 Ajax 相干回調函數的上下文。也就是說,讓回調函數內 this 指向這個對象(如果不設定這個參數,那末 this 就指向調用本次 AJAX 要求時傳遞的 options 參數)。比如指定1個 DOM 元素作為 context 參數,這樣就設置了 success 回調函數的上下文為這個 DOM 元素。
就像這樣:
$.ajax({ url: "test.html", context: document.body, success: function(){
$(this).addClass("done");
}});
data
類型:String
發送到服務器的數據。將自動轉換為要求字符串格式。GET 要求中將附加在 URL 后。查看 processData 選項說明以制止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 將自動為不同值對應同1個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
dataFilter
類型:Function
給 Ajax 返回的原始數據的進行預處理的函數。提供 data 和 type 兩個參數:data 是 Ajax 返回的原始數據,type 是調用 jQuery.ajax 時提供的 dataType 參數。函數返回的值將由 jQuery 進1步處理。
dataType
類型:String
預期服務器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被辨認為 XML。在 1.4 中,JSON 就會生成1個 JavaScript 對象,而 script 則會履行這個腳本。隨后服務器端返回的數據會根據這個值解析后,傳遞給回調函數。可用值:
"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包括的 script 標簽會在插入 dom 時履行。
"script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了 "cache" 參數。注意:在遠程要求時(不在同1個域下),所有 POST 要求都將轉為 GET 要求。(由于將使用 DOM 的 script標簽來加載)
"json": 返回 JSON 數據 。
"jsonp": JSONP 格式。使用 JSONP 情勢調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數名,以履行回調函數。
"text": 返回純文本字符串
error
類型:Function
默許值: 自動判斷 (xml 或 html)。要求失敗時調用此函數。
有以下3個參數:XMLHttpRequest 對象、毛病信息、(可選)捕獲的異常對象。
如果產生了毛病,毛病信息(第2個參數)除得到 null 以外,還多是 "timeout", "error", "notmodified" 和 "parsererror"。
這是1個 Ajax 事件。
global
類型:Boolean
是不是觸發全局 AJAX 事件。默許值: true。設置為 false 將不會觸發全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。
ifModified
類型:Boolean
僅在服務器數據改變時獲得新數據。默許值: false。使用 HTTP 包 Last-Modified 頭信息判斷。在 jQuery 1.4 中,它也會檢查服務器指定的 'etag' 來肯定數據沒有被修改過。
jsonp
類型:String
在1個 jsonp 要求中重寫回調函數的名字。這個值用來替換在 "callback=?" 這類 GET 或 POST 要求中 URL 參數里的 "callback" 部份,比如 {jsonp:'onJsonPLoad'} 會致使將 "onJsonPLoad=?" 傳給服務器。
jsonpCallback
類型:String
為 jsonp 要求指定1個回調函數名。這個值將用來取代 jQuery 自動生成的隨機函數名。這主要用來讓 jQuery 生成度獨特的函數名,這樣管理要求更容易,也能方便地提供回調函數和毛病處理。你也能夠在想讓閱讀器緩存 GET 要求的時候,指定這個回調函數名。
password
類型:String
用于響應 HTTP 訪問認證要求的密碼
processData
類型:Boolean
默許值: true。默許情況下,通過data選項傳遞進來的數據,如果是1個對象(技術上講只要不是字符串),都會處理轉化成1個查詢字符串,以配合默許內容類型 "application/x-www-form-urlencoded"。如果要發送 DOM 樹信息或其它不希望轉換的信息,請設置為 false。
scriptCharset
類型:String
只有當要求時 dataType 為 "jsonp" 或 "script",并且 type 是 "GET" 才會用于強迫修改 charset。通常只在本地和遠程的內容編碼不同時使用。
success
類型:Function
要求成功后的回調函數。
參數:由服務器返回,并根據 dataType 參數進行處理后的數據;描寫狀態的字符串。
這是1個 Ajax 事件。
traditional
類型:Boolean
如果你想要用傳統的方式來序列化數據,那末就設置為 true。請參考工具分類下面的 jQuery.param 方法。
timeout
類型:Number
設置要求超時時間(毫秒)。此設置將覆蓋全局設置。
type
類型:String
默許值: "GET")。要求方式 ("POST" 或 "GET"), 默許為 "GET"。注意:其它 HTTP 要求方法,如 PUT 和 DELETE 也能夠使用,但僅部份閱讀器支持。
url
類型:String
默許值: 當前頁地址。發送要求的地址。
username
類型:String
用于響應 HTTP 訪問認證要求的用戶名。
xhr
類型:Function
需要返回1個 XMLHttpRequest 對象。默許在 IE 下是 ActiveXObject 而其他情況下是 XMLHttpRequest 。用于重寫或提供1個增強的 XMLHttpRequest 對象。這個參數在 jQuery 1.3 之前不可用。
演示案例:
1、 創建Web項目JQueryAjax。
2、 在WebRoot下創建js/jquery文件目錄,添加jquery⑵.1.1.js
3、 創建Servlet(AjaxServlet)。以下:
public class AjaxServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName = request.getParameter("userName");
String age = request.getParameter("age");
PrintWriter out = response.getWriter();
out.print("POST:userName="+userName+",age="+age);
out.flush();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName = request.getParameter("userName");
String age = request.getParameter("age");
PrintWriter out = response.getWriter();
out.print("GET:userName="+userName+",age="+age);
out.flush();
}
}
4、 創建jquery_ajax_method_ajax.jsp。
<%@ page language="java" import="java.util.*" pageEncoding="UTF⑻"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML>
<html>
<head>
<base href="<%=basePath%>">
<title>JQuery AJAX</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="css/styles.css">
<!-- 引入
jquery.js -->
<script type="text/javascript" src="js/
jquery/
jquery⑵.1.1.js"></script>
<script type="text/javascript">
//$.ajax()方法
function submitAjax(){
var userName = $("#userName").val();
var age = $("#age").val();
$.ajax({
type: "post",
url: "servlet/AjaxServlet",
data: "userName="+userName+"&age="+age,
success : function(repData){
alert(repData);
},
error: function(){
alert(0+":AJAX failed!");
}
});
}
</script>
</head>
<body>
<br>
<div class="text_align-center">JQuery AJAX $.ajax()提交演示</div>
<hr />
<div class="align-center">
<form action="servlet/AjaxServlet" method="post">
姓名:<input type="text" name="userName" id="userName"/><br/>
年齡:<input type="text" name="age" id="age"/><br/><br/>
<input type="button" onclick="submitAjax()" value="AJAX提交"/><br/>
<input type="submit" value="表單提交">
</form>
</div>
<hr />
</body>
</html>
5、將項目部署到Tomcat中,測試1下。
【轉載使用,請注明出處:http://blog.csdn.net/mahoking】
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈