1、jQuery.ajax(url[, settings]) 通過HTTP請求載入遠程數據。 註意:所有的settings選擇都可以通過$.ajaxSetup()函數來全局指定。 回調函數 在實際開發中,當我們需要處理$.ajax() 得到的數據,就需要使用到回調函數。 (1) beforeSend ...
1、jQuery.ajax(url[, settings])
通過HTTP請求載入遠程數據。
註意:所有的settings選擇都可以通過$.ajaxSetup()函數來全局指定。
回調函數
在實際開發中,當我們需要處理$.ajax() 得到的數據,就需要使用到回調函數。
(1) beforeSend:在發送請求之前調用,並且傳入一個 XMLHttpRequest 作為參數。
(2) error:在發送請求出差時調用。傳入 XMLHttpRequest 對象、描述錯誤類型的字元串以及一個異常對象。
(3) dataFilter:在請求成功之後調用。傳入返回的數據以及 'dataType'參數的值。並且必須返回新的數據傳遞給success回調函數。
(4) success:請求發送成功,後臺返回數據調用。
(5) complete:在請求完成之後調用,無論成功或失敗。出入 XMLHttpRequest 對象,以及包含成功或失敗代碼的字元串。
settings選項
1 async Boolean
預設為true,表示所有請求均為非同步請求。如果要發送同步請求,將該屬性設置為false。
2 beforeSend(XHR) function
function (XMLHttpRequest) { this; // 調用本次AJAX請求時傳遞的options參數 }
3 cache Boolean
預設為true,dataType為script和jsonp時預設為false,jQuery1.2新功能,設置為false將不緩存此頁面。
4 complete(XHT, TS) function
function (XMLHttpRequest, textStatus) { this; // 調用本次AJAX請求時傳遞的options參數 }
5 contents Map
一個以"{字元串:正則表達式}"配對的對象,用來確定jQuery將如何解析響應,給定內容類型。
6 contentType String
預設為"application/x-www-form-urlencoded",發送信息至伺服器時的內容編碼類型。
7 context Object
這個對象用於設置ajax相關回調函數的上下文。即讓回調函數內的 this 關鍵字指向這個對象(如果不設置這個參數,this將指向本次ajax請求時傳遞的options參數)。比如指定一個DOM元素作為context參數,回調函數的this 就指向這個 DOM元素。
8 converters Map
預設為 {"* text":window.String, "text html":true, "text json":jQuery.parseJSON, "text xml":jQuery.parseXML},表示對一個數據類型進行轉換。每個轉換器的值是一個函數,返回相應的轉化值。
9 crossDomain Map
預設false,表示同域請求。如你想強制跨域請求(如JSONP形式),設置為false,是服務端重定向到另一域。
10 data Object, String
發送到伺服器的數據。將自動轉換為請求字元串格式。可以為字元串,如"&key1=val1&key2=val2",也可以是一個json對象。
11 dataFilter function
給ajax返回的原始數據進行相應的處理。提供data和type兩個參數:data是返回的原始數據,type是調用jQuery.ajax時提供的dataType參數。
function (data, type) { // 對Ajax返回的原始數據進行預處理 return data // 返回處理後的數據 }
12 dataType String
設置伺服器返回的數據類型。如果不指定,jQuery將自動根據HTTP包MIME信息來智能判斷,比如XML MIME就被識別為XML。可用值:
xml:返回XML文檔。
html:返回純文本HTML信息。
script:返回純文本JavaScript代碼。不會自動緩存結果,除非設置了cache參數。
json:返回JSON格式數據。
jsonp:返回JSONP格式。
text:返回純文本字元串。
13 error function
function (XMLHttpRequest, textStatus, errorThrown) { // 通常 textStatus 和 errorThrown 之中只有一個會包含信息 this; // 調用本次AJAX請求時傳遞的options參數 }
14 global function
預設為true,觸發全局ajax時間。如果設置為false,將不會觸發全局ajax時間,如ajaxStart 或 ajaxStop可用於控制不用的 ajax事件。
15 headers Map
預設為 {} 。以 key:value 的形式設置請求頭信息。
16 mimeType String
一個mime類型,用來覆蓋XMLHttpRquest 的 MIME類型。
17 password String
用於響應HTTP訪問認證請求的密碼。
18 processData Boolean
預設為true,表示通過data選項傳遞進來的數據,如果是一個對象,都會轉換成一個查詢字元串,以配合預設內容類型 "application/x-www-form-urlencoded"。如果要發送DOM 樹信息或其他不希望轉換的信息(如使用ajax上傳文件),請設置為false。
19 statusCode Map
預設為 {} ,一組數字的HTTP代碼和函數對象,當相應時調用了相應的代碼。
// 如果響應狀態是404,將觸發以下警報: $.ajax({ statusCode: {404: function() { alert('page not found'); } });
20 success(data, textStatus)
21 timeout Number
設置請求超時時間(毫秒)。此設置會覆蓋全局設置$/ajaxSetup()
22 type String
請求方式,預設為GET
23 url String
發送請求的地址。
24 username String
用於響應HTTP訪問認證請求的用戶名。
2、load(url[, data][, callback])
載入遠程HTML文件代碼並插入至DOM中。
預設使用GET繁瑣,傳遞data參數自動轉換為POST方式。
參數:
(1) url:帶裝入HTML網頁地址。
(2) data:發送至伺服器的key/value數據。
(3) callback:載入成功時回調函數。
3、jQuery.get(url[, data][, callback][, type])
通過遠程HTTP GET 請求載入信息。
這是這個簡單的GET請求功能以取代複雜 $.ajax。請求成功時可回調函數,如果需要咋出錯時執行函數,請使用$.ajax。
參數:
(1) type:返回內容格式,xml、html、script、json、text、_default。
4、jQuery.getJSON(url[, data][, callback])
通過HTTP GET請求載入JSON數據。
5、jQuery.getScript(url[, callback])
通過HTTP GET請求載入並執行一個JavaScript文件。
參數:
(1) url:帶裝入js文件地址。
(2) callback:載入成功時回調函數。
6、jQuery.post(url[, data][, callback][, type])
通過遠程HTTP POST請求載入信息。
這是這個簡單的POST請求功能以取代複雜 $.ajax。請求成功時可回調函數,如果需要咋出錯時執行函數,請使用$.ajax。
參數:
(1) type:返回內容格式,xml、html、script、json、text、_default。
7、jQuery.ajaxSetup([options])
設置全局AJAX預設選項。參數參考'$.ajax' settings。
$.ajaxSetup({ url: "/xxx", type: "POST" }); $.ajax({ data: myData });
8、serializeArray()
序列化表格元素返回JSON數據結構數據。
返回JSON數組對象,其中每個對象包含一個或兩個名值對——name參數和value參數。如:
[ {name: 'firstname', value: 'Hello'}, {name: 'lastname', value: 'World'}, {name: 'alias'}, // this one was empty ]