$.ajax(0方式是jQuery最底層的Ajax實現。javascript
它的結構爲:
html
$.ajax(options)java
該方法只有1個參數,但在這個對象裏包含了$.ajax()方法所須要的請求設置以及回調函數等信息。參數以key/value的形式存在,全部參數都是可選的。經常使用的參數以下表所示:
jquery
參數名稱 | 類型 | 說明 |
urlajax |
String | 發送請求的地址 |
type |
String | 請求方式(POST或GET),默認是GET |
timeout | Number | 設置請求超時時間(毫秒)。此設置將覆json 蓋$.ajaxSetup()方法的全局設置數組 |
data | Object緩存 或String服務器 |
發送到服務器的數據。若是已經不是字符串,將自動轉換爲函數 字符串格式。GET請求中將附加在URL後。防止這種自動轉換 ,能夠查看processData選項。對象必須是key/value格式, 例如{foo1:"bar1",foo2:"bar2"}轉換爲&foo1=bar&foo2=bar2。 若是是數組,jquery將自動爲不一樣值對應同一個名稱,例如 {foo:["bar1","bar2"]}轉換爲&foo=bar1&foo=bar2 |
dataType | String | 預期服務器返回的數據類型。若是不指定,jquery將自動根 據HTTP包MIME信息返回responseXML或responseText,並 做爲回調函數傳遞。可用的類型有: xml:返回XML文本,可用jquery處理。 html:返回純文本HTML信息;包含的script標籤會插入DOM時執行 script:返回純文本javascript代碼。不會自動緩存結果。除非設置 了cache參數。注意在遠程請求時(不在同一個域下),全部POST請求 都將轉爲GET請求。 json:返回JSON數據 jsonp:JSONP格式。使用JSONP形式調用函數時, 例如myurl?callback=?,jquery將自動替換後一個"?"爲 正確的函數名,以執行回調函數。 text:返回純文本字符串。 |
beforeSend | Function | 發送請求前能夠修改XMLHttpRequest對象的函數, 例如添加自定義HTTP頭。在beforeSend中若是返 回false能夠取消本次Ajax請求。XMLHttpRequest對 象是惟一的參數. function(XMLHttpRequest){ this;//調用本次ajax請求時傳遞的options參數 } |
complete | Function | 請求完成後調用的回調函數,不管成功與否,都調用。 參數:XMLHttpRequest對象和一個描述成功請求類型的字符串。 function(XMLHttpRequest,textStatus){ this;//調用本次ajax請求時傳遞的options參數 } |
success |
Function | 請求成功後調用的回調函數,有兩個參數: 一、由服務器返回,並根據dataType參數進行處理後的數據 二、描述狀態的字符串。 function(data,textStatus){ //data多是xmlDoc、jsonObj、html、text等等 this;//調用本次ajax請求時傳遞的options參數 } |
error | Function | 請求失敗時被調用的函數。該函數有3個參數,即: XMLHttpRequest對象、錯誤信息、捕獲的錯誤對象(可選)。 ajax事件函數以下: function(XMLHttpRequest,textStatus,errorThrown){ //一般狀況下textStatus和errorThrown只有其中一個包含信息 this;//調用本次ajax請求時傳遞的options參數 } |
global Boolean 默認爲true。表示是否觸發全局ajax事件。設置爲false將不會觸發全局Ajax事件。AjaxStart或AjaxStop能夠用於控制各類Ajax事件。
前面用到的load()、$.get()、$.post()、$.getScript()和$.getJSON這些方法,都是基於$.ajax()方法構建的。
例如,能夠使用下面的jquery代碼代替$.getScript()方法:
$(function(){
$('#send').click(function(){
$.ajax({
type:'GET',
url:'test.js',
dataType:'script'
});
});
})