jQuery內部也封裝了對原生ajax請求的方法,可以很方便我們的對后台異步請求處理。
$.get()方法
語法:jQuery.get( url [, data ] [, success ] [, dataType ] )
- url 請求的后台地址
- data 傳遞的參數
- success 成功的回調,
function(PlainObject data, String textStatus, jqXHR jqXHR ) - dataType 預期后台返回數據的類型,默認會自動智能判斷(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。默認設置下,所有請求均為異步請求。如果需要發送同步請求,請將此選項設置為 false。
注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執行。
- beforeSend(XHR) 類型:Function
發送請求前可修改 XMLHttpRequest 對象的函數,如添加自定義 HTTP 頭。
XMLHttpRequest 對象是唯一的參數。
這是一個 Ajax 事件。如果返回 false 可以取消本次 ajax 請求。
- cache 類型:Boolean
默認值: true,dataType 為 script 和 jsonp 時默認為 false。設置為 false 將不緩存此頁面。
- contentType 類型:String
默認值: "application/x-www-form-urlencoded"。發送信息至服務器時內容編碼類型。
- data 類型:String
發送到服務器的數據。將自動轉換為請求字符串格式。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
-
dataType 類型:String
預期服務器返回的數據類型。 (xml、html、script、json、jsonp、text)。jq會將自動根據 HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。 -
error 類型:Function
默認值: 自動判斷 (xml 或 html)。請求失敗時調用此函數。
有以下三個參數:XMLHttpRequest 對象、錯誤信息、(可選)捕獲的異常對象。
如果發生了錯誤,錯誤信息(第二個參數)除了得到 null 之外,還可能是 "timeout", "error", "notmodified" 和 "parsererror"。
- success 類型:Function
請求成功后的回調函數。
參數:由服務器返回,並根據 dataType 參數進行處理后的數據;描述狀態的字符串。
這是一個 Ajax 事件。
- type 類型:String
默認值: "GET")。請求方式 ("POST" 或 "GET"), 默認為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
- url 類型:String
默認值: 當前頁地址。發送請求的地址。
- jsonp 類型:String
在一個 jsonp 請求中重寫回調函數的名字。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 會導致將 "onJsonPLoad=?" 傳給服務器。
- jsonpCallback 類型:String
為 jsonp 請求指定一個回調函數名。這個值將用來取代 jQuery 自動生成的隨機函數名。這主要用來讓 jQuery 生成度獨特的函數名,這樣管理請求更容易,也能方便地提供回調函數和錯誤處理。你也可以在想讓瀏覽器緩存 GET 請求的時候,指定這個回調函數名。
語法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,但是返回的數據類型自動轉換為json對象。
此方法,支持JSONP的調用。如果url中包含了callback=?或者后台要求的callback參數,那么此方法自動轉換成jsonp的調用模式。
$.getJSON('user.json', function(data) { console.log(data.id); });
jQuery.getScript()方法
執行后台的請求,並下載js腳本,下載完成后,自動執行。
語法: 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) {});
