3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
看juqery的API啊,里面都有。
通過(guò) HTTP 請(qǐng)求加載遠(yuǎn)程數(shù)據(jù)。
jQuery 底層 AJAX 實(shí)現(xiàn)。簡(jiǎn)單易用的高層實(shí)現(xiàn)見 $.get, $.post 等。$.ajax() 返回其創(chuàng)建的 XMLHttpRequest 對(duì)象。大多數(shù)情況下你無(wú)需直接操作該對(duì)象,但特殊情況下可用于手動(dòng)終止請(qǐng)求。
$.ajax() 只有一個(gè)參數(shù):參數(shù) key/value 對(duì)象,包含各配置及回調(diào)函數(shù)信息。詳細(xì)參數(shù)選項(xiàng)見下。
注意: 如果你指定了 dataType 選項(xiàng),請(qǐng)確保服務(wù)器返回正確的 MIME 信息,(如 xml 返回 "text/xml")。錯(cuò)誤的 MIME 類型可能導(dǎo)致不可預(yù)知的錯(cuò)誤。見 Specifying the Data Type for AJAX Requests 。
注意:如果dataType設(shè)置為"script",那么在遠(yuǎn)程請(qǐng)求時(shí)(不在同一個(gè)域下),所有POST請(qǐng)求都將轉(zhuǎn)為GET請(qǐng)求。(因?yàn)閷⑹褂肈OM的script標(biāo)簽來(lái)加載)
jQuery 1.2 中,您可以跨域加載 JSON 數(shù)據(jù),使用時(shí)需將數(shù)據(jù)類型設(shè)置為 JSONP。使用 JSONP 形式調(diào)用函數(shù)時(shí),如 "myurl?callback=?" jQuery 將自動(dòng)替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。數(shù)據(jù)類型設(shè)置為 "jsonp" 時(shí),jQuery 將自動(dòng)調(diào)用回調(diào)函數(shù)。
參數(shù)
options (可選)ObjectAJAX 請(qǐng)求設(shè)置。所有選項(xiàng)都是可選的。
選項(xiàng)
asyncBoolean(默認(rèn): true) 默認(rèn)設(shè)置下,所有請(qǐng)求均為異步請(qǐng)求。如果需要發(fā)送同步請(qǐng)求,請(qǐng)將此選項(xiàng)設(shè)置為 false。注意,同步請(qǐng)求將鎖住瀏覽器,用戶其它操作必須等待請(qǐng)求完成才可以執(zhí)行。
beforeSendFunction發(fā)送請(qǐng)求前可修改 XMLHttpRequest 對(duì)象的函數(shù),如添加自定義 HTTP 頭。XMLHttpRequest 對(duì)象是唯一的參數(shù)。這是一個(gè) Ajax 事件。如果返回false可以取消本次ajax請(qǐng)求。
function (XMLHttpRequest) {
this; // 調(diào)用本次AJAX請(qǐng)求時(shí)傳遞的options參數(shù)
}
cacheBoolean(默認(rèn): true,dataType為script時(shí)默認(rèn)為false) jQuery 1.2 新功能,設(shè)置為 false 將不會(huì)從瀏覽器緩存中加載請(qǐng)求信息。
completeFunction請(qǐng)求完成后回調(diào)函數(shù) (請(qǐng)求成功或失敗時(shí)均調(diào)用)。參數(shù): XMLHttpRequest 對(duì)象和一個(gè)描述成功請(qǐng)求類型的字符串。 Ajax 事件。
function (XMLHttpRequest, textStatus) {
this; // 調(diào)用本次AJAX請(qǐng)求時(shí)傳遞的options參數(shù)
}
contentTypeString(默認(rèn): "application/x-www-form-urlencoded") 發(fā)送信息至服務(wù)器時(shí)內(nèi)容編碼類型。默認(rèn)值適合大多數(shù)應(yīng)用場(chǎng)合。
dataObject,String發(fā)送到服務(wù)器的數(shù)據(jù)。將自動(dòng)轉(zhuǎn)換為請(qǐng)求字符串格式。GET 請(qǐng)求中將附加在 URL 后。查看 processData 選項(xiàng)說(shuō)明以禁止此自動(dòng)轉(zhuǎn)換。必須為 Key/Value 格式。如果為數(shù)組,jQuery 將自動(dòng)為不同值對(duì)應(yīng)同一個(gè)名稱。如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 '&foo=bar1&foo=bar2'。
dataFilterFunction給Ajax返回的原始數(shù)據(jù)的進(jìn)行預(yù)處理的函數(shù)。提供data和type兩個(gè)參數(shù):data是Ajax返回的原始數(shù)據(jù),type是調(diào)用jQuery.ajax時(shí)提供的dataType參數(shù)。函數(shù)返回的值將由jQuery進(jìn)一步處理。
function (data, type) {
// 對(duì)Ajax返回的原始數(shù)據(jù)進(jìn)行預(yù)處理
return data // 返回處理后的數(shù)據(jù)
}
dataTypeString
預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動(dòng)根據(jù) HTTP 包 MIME 信息返回 responseXML 或 responseText,并作為回調(diào)函數(shù)參數(shù)傳遞,可用值:
"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包含的script標(biāo)簽會(huì)在插入dom時(shí)執(zhí)行。
"script": 返回純文本 JavaScript 代碼。不會(huì)自動(dòng)緩存結(jié)果。除非設(shè)置了"cache"參數(shù)。'''注意:'''在遠(yuǎn)程請(qǐng)求時(shí)(不在同一個(gè)域下),所有POST請(qǐng)求都將轉(zhuǎn)為GET請(qǐng)求。(因?yàn)閷⑹褂肈OM的script標(biāo)簽來(lái)加載)
"json": 返回 JSON 數(shù)據(jù) 。
"jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時(shí),如 "myurl?callback=?" jQuery 將自動(dòng)替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。
"text": 返回純文本字符串
errorFunction(默認(rèn): 自動(dòng)判斷 (xml 或 html)) 請(qǐng)求失敗時(shí)調(diào)用時(shí)間。參數(shù)有以下三個(gè):XMLHttpRequest 對(duì)象、錯(cuò)誤信息、(可選)捕獲的錯(cuò)誤對(duì)象。如果發(fā)生了錯(cuò)誤,錯(cuò)誤信息(第二個(gè)參數(shù))除了得到null之外,還可能是"timeout", "error", "notmodified" 和 "parsererror"。Ajax 事件。
function (XMLHttpRequest, textStatus, errorThrown) {
// 通常 textStatus 和 errorThrown 之中
// 只有一個(gè)會(huì)包含信息
this; // 調(diào)用本次AJAX請(qǐng)求時(shí)傳遞的options參數(shù)
}
globalBoolean(默認(rèn): true) 是否觸發(fā)全局 AJAX 事件。設(shè)置為 false 將不會(huì)觸發(fā)全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。
ifModifiedBoolean(默認(rèn): false) 僅在服務(wù)器數(shù)據(jù)改變時(shí)獲取新數(shù)據(jù)。使用 HTTP 包 Last-Modified 頭信息判斷。
jsonpString在一個(gè)jsonp請(qǐng)求中重寫回調(diào)函數(shù)的名字。這個(gè)值用來(lái)替代在"callback=?"這種GET或POST請(qǐng)求中URL參數(shù)里的"callback"部分,比如{jsonp:'onJsonPLoad'}會(huì)導(dǎo)致將"onJsonPLoad=?"傳給服務(wù)器。
passwordString用于響應(yīng)HTTP訪問(wèn)認(rèn)證請(qǐng)求的密碼
processDataBoolean(默認(rèn): true) 默認(rèn)情況下,發(fā)送的數(shù)據(jù)將被轉(zhuǎn)換為對(duì)象(技術(shù)上講并非字符串) 以配合默認(rèn)內(nèi)容類型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請(qǐng)?jiān)O(shè)置為 false。
scriptCharsetString只有當(dāng)請(qǐng)求時(shí)dataType為"jsonp"或"script",并且type是"GET"才會(huì)用于強(qiáng)制修改charset。通常在本地和遠(yuǎn)程的內(nèi)容編碼不同時(shí)使用。
successFunction請(qǐng)求成功后的回調(diào)函數(shù)。參數(shù):由服務(wù)器返回,并根據(jù)dataType參數(shù)進(jìn)行處理后的數(shù)據(jù);描述狀態(tài)的字符串。 Ajax 事件。
function (data, textStatus) {
// data 可能是 xmlDoc, jsonObj, html, text, 等等...
this; // 調(diào)用本次AJAX請(qǐng)求時(shí)傳遞的options參數(shù)
}
timeoutNumber設(shè)置請(qǐng)求超時(shí)時(shí)間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。
typeString(默認(rèn): "GET") 請(qǐng)求方式 ("POST" 或 "GET"), 默認(rèn)為 "GET"。注意:其它 HTTP 請(qǐng)求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
urlString(默認(rèn): 當(dāng)前頁(yè)地址) 發(fā)送請(qǐng)求的地址。
usernameString用于響應(yīng)HTTP訪問(wèn)認(rèn)證請(qǐng)求的用戶名
xhrFunction需要返回一個(gè)XMLHttpRequest 對(duì)象。默認(rèn)在IE下是ActiveXObject 而其他情況下是XMLHttpRequest 。用于重寫或者提供一個(gè)增強(qiáng)的XMLHttpRequest 對(duì)象。這個(gè)參數(shù)在jQuery 1.3以前不可用。
示例
描述:
加載并執(zhí)行一個(gè) JS 文件。
jQuery 代碼:
$.ajax({
type: "GET",
url: "test.js",
dataType: "script"
});描述:
保存數(shù)據(jù)到服務(wù)器,成功時(shí)顯示信息。
jQuery 代碼:
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});描述:
裝入一個(gè) HTML 網(wǎng)頁(yè)最新版本。
jQuery 代碼:
$.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").append(html);
}
});描述:
同步加載數(shù)據(jù)。發(fā)送請(qǐng)求時(shí)鎖住瀏覽器。需要鎖定用戶交互操作時(shí)使用同步方式。
jQuery 代碼:
var html = $.ajax({
url: "some.php",
async: false
}).responseText;描述:
發(fā)送 XML 數(shù)據(jù)至服務(wù)器。設(shè)置 processData 選項(xiàng)為 false,防止自動(dòng)轉(zhuǎn)換數(shù)據(jù)格式。
jQuery 代碼:
var xmlDocument = [create xml document];
$.ajax({
url: "page.php",
processData: false,
data: xmlDocument,
success: handleResponse
});

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
函數(shù)處理返回來(lái)的數(shù)據(jù),比如以下代碼是把返回的數(shù)據(jù)添加到列表中
$.ajax(
{
type: "get",
datatype: "json",
url: encodeURI("test.ashx?name=" + $("#<%=TextBox1.ClientID %>").val()),
beforeSend: function() { $("#panel").html("正在載入..."); },
success: function(data) { var data1 = eval('' + data + ''); $("#panel").html(""); $.each(data1, function(i) { $("#panel").append("<li>name:" + data1[i].name + " " + "age:" + data1[i].age + "</li>"); }) },
// success:function(data){$("#panel").html(data);},
complete: function() { alert("載入完成"); }
}
)

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng)接收到返回?cái)?shù)據(jù)時(shí)就會(huì)觸發(fā)這個(gè)回調(diào)函數(shù),否則就不觸發(fā)。換句話說(shuō)就是如果此次傳遞數(shù)據(jù)的任務(wù)成功了,就會(huì)執(zhí)行回調(diào)函數(shù)里的程序(如顯示返回值或者做其它的事情),如果它沒(méi)有被執(zhí)行,說(shuō)明任務(wù)不成功。
添加回答
舉報(bào)