jQuery內部也封裝了對原生ajax請求的方法设凹,可以很方便我們的對后臺異步請求處理。
$.get()方法
語法:jQuery.get( url [, data ] [, success ] [, dataType ] )
- url 請求的后臺地址
- data 傳遞的參數(shù)
- success 成功的回調,
function(PlainObject data, String textStatus, jqXHR jqXHR )
- dataType 預期后臺返回數(shù)據(jù)的類型兢榨,默認會自動智能判斷(xml, json, script, text, html)
$.get('/user.json', function(data) {
console.log(data);
});
$.get('/user.json', 'id=1', function (data, status, jsXHR) {
console.log(data.id);
}, 'json');
$.post()方法
語法: jQuery.post( url [, data ] [, success ] [, dataType ] )
用法跟get基本一致。列子:
$.post('/api/user', {id: 3, name: 234}, function(data, status, jsXHR) {
console.log(data);
});
$.ajax()方法
語法1: jQuery.ajax( [settings ] )
settings 是一個普通的對象全跨』嘀可以有如下設置:
- async 類型:Boolean
默認值: true。默認設置下豺裆,所有請求均為異步請求拒秘。如果需要發(fā)送同步請求,請將此選項設置為 false臭猜。
注意躺酒,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行蔑歌。
- beforeSend(XHR) 類型:Function
發(fā)送請求前可修改 XMLHttpRequest 對象的函數(shù)羹应,如添加自定義 HTTP 頭。
XMLHttpRequest 對象是唯一的參數(shù)次屠。
這是一個 Ajax 事件园匹。如果返回 false 可以取消本次 ajax 請求。
- cache 類型:Boolean
默認值: true劫灶,dataType 為 script 和 jsonp 時默認為 false裸违。設置為 false 將不緩存此頁面。
- contentType 類型:String
默認值: "application/x-www-form-urlencoded"本昏。發(fā)送信息至服務器時內容編碼類型累颂。
- data 類型:String
發(fā)送到服務器的數(shù)據(jù)。將自動轉換為請求字符串格式凛俱。GET 請求中將附加在 URL 后紊馏。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式蒲犬。如果為數(shù)組朱监,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'原叮。
dataType 類型:String
預期服務器返回的數(shù)據(jù)類型赫编。 (xml巡蘸、html、script擂送、json悦荒、jsonp、text)嘹吨。jq會將自動根據(jù) HTTP 包 MIME 信息來智能判斷搬味,比如 XML MIME 類型就被識別為 XML。error 類型:Function
默認值: 自動判斷 (xml 或 html)蟀拷。請求失敗時調用此函數(shù)碰纬。
有以下三個參數(shù):XMLHttpRequest 對象、錯誤信息问芬、(可選)捕獲的異常對象悦析。
如果發(fā)生了錯誤,錯誤信息(第二個參數(shù))除了得到 null 之外此衅,還可能是 "timeout", "error", "notmodified" 和 "parsererror"强戴。
- success 類型:Function
請求成功后的回調函數(shù)。
參數(shù):由服務器返回挡鞍,并根據(jù) dataType 參數(shù)進行處理后的數(shù)據(jù)酌泰;描述狀態(tài)的字符串。
這是一個 Ajax 事件匕累。
- type 類型:String
默認值: "GET")。請求方式 ("POST" 或 "GET")默伍, 默認為 "GET"欢嘿。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用也糊,但僅部分瀏覽器支持炼蹦。
- url 類型:String
默認值: 當前頁地址。發(fā)送請求的地址狸剃。
- jsonp 類型:String
在一個 jsonp 請求中重寫回調函數(shù)的名字掐隐。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數(shù)里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 會導致將 "onJsonPLoad=?" 傳給服務器钞馁。
- jsonpCallback 類型:String
為 jsonp 請求指定一個回調函數(shù)名虑省。這個值將用來取代 jQuery 自動生成的隨機函數(shù)名。這主要用來讓 jQuery 生成度獨特的函數(shù)名僧凰,這樣管理請求更容易探颈,也能方便地提供回調函數(shù)和錯誤處理。你也可以在想讓瀏覽器緩存 GET 請求的時候训措,指定這個回調函數(shù)名伪节。
語法2:jQuery.ajax( url [, settings ] )
$.ajax({
url: 'user.json',
data: 'id=3',
type: 'GET',
success: function(data) {
console.log(data);
}
});
$.getJSON()
語法: jQuery.getJSON( url [, data ] [, success ] )
用法類似于get光羞,但是返回的數(shù)據(jù)類型自動轉換為json對象。
此方法怀大,支持JSONP的調用纱兑。如果url中包含了callback=?
或者后臺要求的callback參數(shù),那么此方法自動轉換成jsonp的調用模式化借。
$.getJSON('user.json', function(data) {
console.log(data.id);
});
jQuery.getScript()方法
執(zhí)行后臺的請求潜慎,并下載js腳本,下載完成后屏鳍,自動執(zhí)行勘纯。
語法: jQuery.getScript( url [, success ] )
$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
console.log( data ); // Data returned
console.log( textStatus ); // Success
console.log( jqxhr.status ); // 200
console.log( "Load was performed." );
});
load()方法
從后臺下載html內容,下載完成后替換到選擇元素的內部钓瞭。
語法:$(selector).load( url [, data ] [, complete ] )
$('.box').load('/user/list', {}, function(data) {});