jQuery.get()
jQuery.get( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] ) 返回: jqXHR
描述: 通過服務器HTTP GET請求加載數(shù)據(jù)。
-
version added: 1.0jQuery.get( url, [ data ], [ success(data, textStatus, jqXHR) ], [ dataType ] )
url一個包含發(fā)送請求的URL字符串
data向服務器發(fā)送請求的Key/value參數(shù)
success(data, textStatus, jqXHR)當請求成功后執(zhí)行的回調函數(shù)。
dataType從服務器返回的預期的數(shù)據(jù)類型。默認:智能猜測(xml, json, script, or html)。
這是一個縮寫的Ajax功能,這相當于:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
成功的回調函數(shù)是根據(jù)MIME類型的響應,通過返回的數(shù)據(jù)包括XML根節(jié)點, 字符串, JavaScript 文件, 或者 JSON 對象。 它也是通過文本地位的反應。
在jQuery 1.5,success回調函數(shù)還通過了“jqXHR”對象 ( 在 jQuery 1.4中 ,它是通過XMLHttpRequest對象)。然而,由于JSONP形式和跨域的GET請求不使用的XHR,,在這些情況下, (j)XHR和textStatus回調參數(shù)傳遞的成功是不確定的。
大多數(shù)實現(xiàn)將指定一個成功的處理程序:
$.get('ajax/test.html', function(data) {
$('.result').html(data);
alert('Load was performed.');
});
這個例子所請求的全部HTML代碼片段插在頁面。
jqXHR 對象
在jQuery 1.5,所有jQuery的Ajax方法都返回的超集XMLHTTPRequest對象。這個jQuery XHR對象,或“jqXHR,”通過$.get()約定的接口實現(xiàn)返回,給它的所有屬性,方法和約定的行為(見Deferred object獲取更多信息)。為了方便和一致性,回調名稱使用$.ajax(),它提供.error() .success()和.complete()方法。這些方法當$.ajax()請求終止時需要一個函數(shù)參數(shù)調用,這個函數(shù)接收$.ajax()回調函數(shù)名相同的參數(shù)。
在jQuery 1.5的約定接口也使jQuery的Ajax方法,其中包括$.get() ,以鏈多個.success(), .complete()和.error()回調的一個請求,甚至回調后分配這些請求可能已經完成。如果請求已經完成,立即觸發(fā)回調。
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get("example.php", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
// perform other work here ...
// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });
其他注意事項:
- 由于瀏覽器的安全限制,大多數(shù)“Ajax”的要求,均采用同一起源的政策 ;該請求不能成功地檢索來自不同的域,子域或協(xié)議的數(shù)據(jù)。
- 如果一個jQuery.get()請求返回一個錯誤代碼,它會靜靜的失敗,除非腳本調用全局的.ajaxError()方法。在jQuery 1.5, 通過jQuery.get()返回的
.error()方法的jqXHR對象也可用于處理錯誤。 - Script和JSONP形式請求不受同源策略的限制。
Examples:
Example: 請求 test.php 頁面, 但是忽略返回結果.
$.get("test.php");
Example: 請求 test.php 頁面 并且發(fā)送url參數(shù)(雖然仍然忽視返回的結果)。
$.get("test.php", { name: "John", time: "2pm" } );
Example: 傳遞數(shù)組形式data參數(shù)給服務器 (雖然仍然忽視返回的結果).
$.get("test.php", { 'choices[]': ["Jon", "Susan"]} );
Example: Alert 從 test.php請求的數(shù)據(jù)結果 (HTML 或者 XML,取決于返回的結果).
$.get("test.php", function(data){
alert("Data Loaded: " + data);
});
Example: Alert 從 test.cgi請求并且發(fā)送url參數(shù)的數(shù)據(jù)結果 (HTML 或者 XML,取決于返回的結果).
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
Example: 獲取test.php的頁面已返回的JSON格式的內容 (<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>).
$.get("test.php", { "func": "getNameAndTime" },
function(data){
alert(data.name); // John
console.log(data.time); // 2pm
}, "json");