溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jQuery學(xué)習(xí)筆記之Ajax用法詳解

發(fā)布時間:2020-08-07 13:42:08 來源:ITPUB博客 閱讀:209 作者:changshawangzhan 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章主要介紹了jQuery學(xué)習(xí)筆記之Ajax用法,長沙網(wǎng)站建設(shè)結(jié)合實例形式較為詳細(xì)的分析總結(jié)了jQuery中ajax的相關(guān)使用技巧,包括ajax請求、載入、處理、傳遞等,需要的朋友可以參考下

本文實例講述了jQuery學(xué)習(xí)筆記之Ajax用法。分享給大家供大家參考,具體如下:

一、Ajax請求

  1、jQuery.ajax(options)

    通過 HTTP 請求加載遠(yuǎn)程數(shù)據(jù)。jQuery 底層 AJAX 實現(xiàn)。簡單易用的高層實現(xiàn)見 .get,.post 等。

    .ajax()返回其創(chuàng)建的XMLHttpRequest對象。大多數(shù)情況下你無需直接操作該對象,但特殊情況下可用于手動終止請求。.ajax() 只有一個參數(shù):參數(shù) key/value 對象,包含各配置及回調(diào)函數(shù)信息。詳細(xì)參數(shù)選項見下。

    注意:  如果你指定了 dataType 選項,請確保服務(wù)器返回正確的 MIME 信息,(如 xml 返回 "text/xml")。錯誤的 MIME 類型可能導(dǎo)致不可預(yù)知的錯誤。

    注意:如果dataType設(shè)置為"script",那么在遠(yuǎn)程請求時(不在同一個域下),所有POST請求都將轉(zhuǎn)為GET請求。(因為將使用DOM的script標(biāo)簽來加載)

    jQuery 1.2 中,您可以跨域加載 JSON 數(shù)據(jù),使用時需將數(shù)據(jù)類型設(shè)置為 JSONP。使用 JSONP 形式調(diào)用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。數(shù)據(jù)類型設(shè)置為 "jsonp" 時,jQuery 將自動調(diào)用回調(diào)函數(shù)。

    返回值: XMLHttpRequest

    參數(shù):

    options (可選) : AJAX 請求設(shè)置。所有選項都是可選的。

    選項

    (1)、 async (Boolean)  : (默認(rèn): true) 

      默認(rèn)設(shè)置下,所有請求均為異步請求。如果需要發(fā)送同步請求,請將此選項設(shè)置為 false。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。

    (2)、 beforeSend (Function)  : 發(fā)送請求前可修改 XMLHttpRequest 對象的函數(shù),如添加自定義 HTTP 頭。

      XMLHttpRequest 對象是唯一的參數(shù)。這是一個 Ajax 事件。如果返回false可以取消本次ajax請求。

     function (XMLHttpRequest) {
        this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)      }

    (3)、 cache (Boolean)  : (默認(rèn): true,dataType為script時默認(rèn)為false) 。jQuery 1.2 新功能,設(shè)置為 false 將不會從瀏覽器緩存中加載請求信息。

    (4)、 complete (Function)  : 請求完成后回調(diào)函數(shù) (請求成功或失敗時均調(diào)用)。

      參數(shù): XMLHttpRequest 對象和一個描述成功請求類型的字符串。 這是一個 Ajax 事件

    function (XMLHttpRequest, textStatus) {
        this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)     } 

    (5)、 contentType (String)  : (默認(rèn): " application/x-www-form-urlencoded ") 發(fā)送信息至服務(wù)器時內(nèi)容編碼類型。默認(rèn)值適合大多數(shù)應(yīng)用場合。

    (6)、 data (Object,String)  : 發(fā)送到服務(wù)器的數(shù)據(jù)。將自動轉(zhuǎn)換為請求字符串格式。GET 請求中將附加在URL 后。查看processData選項說明以禁止此自動轉(zhuǎn)換。

      必須為 Key/Value 格式。如果為數(shù)組,jQuery 將自動為不同值對應(yīng)同一個名稱。如  {foo:["bar1", "bar2"]}  轉(zhuǎn)換為 '&foo=bar1&foo=bar2'。

    (7)、 dataFilter (Function)  :給Ajax返回的原始數(shù)據(jù)的進(jìn)行預(yù)處理的函數(shù)。提供data和type兩個參數(shù):data是Ajax返回的原始數(shù)據(jù),type是調(diào)用jQuery.ajax時

      提供的dataType參數(shù)。函數(shù)返回的值將由jQuery進(jìn)一步處理。

      function (data, type) {
        // 對Ajax返回的原始數(shù)據(jù)進(jìn)行預(yù)處理       return data // 返回處理后的數(shù)據(jù)       } 

    (8)、 dataType (String)  : (默認(rèn)值:智能判斷xml或者h(yuǎn)tml)

        預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動根據(jù) HTTP 包 MIME 信息返回responseXML 或 responseText,并作為回調(diào)函數(shù)參數(shù)傳遞,可用值:

        "xml": 返回 XML 文檔,可用 jQuery 處理。
        "html": 返回純文本 HTML 信息;包含的script標(biāo)簽會在插入dom時執(zhí)行。
        "script": 返回純文本 JavaScript 代碼。不會自動緩存結(jié)果。除非設(shè)置了"cache"參數(shù)。注意:在遠(yuǎn)程請求時(不在同一個域下),所有POST請求都將轉(zhuǎn)為GET請求。(因為將使用DOM的script標(biāo)簽來加載)
        "json": 返回 JSON 數(shù)據(jù) 。
        "jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時,如 " myurl?callback=? " jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。
        "text": 返回純文本字符串

    (9)、 error (Function)  : (默認(rèn): 自動判斷 (xml 或 html)) 請求失敗時調(diào)用時間。參數(shù)有以下三個:XMLHttpRequest 對象、錯誤信息、(可選)捕獲的錯誤對象。

      如果發(fā)生了錯誤,錯誤信息(第二個參數(shù))除了得到null之外,還可能是"timeout", "error", "notmodified" 和 "parsererror"。Ajax 事件。

      function (XMLHttpRequest, textStatus, errorThrown) {
        // 通常 textStatus 和 errorThrown 之中         // 只有一個會包含信息         this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù)       }

    (10)、 global (Boolean)  : (默認(rèn): true) 是否觸發(fā)全局 AJAX 事件。設(shè)置為 false 將不會觸發(fā)全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。

    (11)、 ifModified (Boolean)  : (默認(rèn): false) 僅在服務(wù)器數(shù)據(jù)改變時獲取新數(shù)據(jù)。使用 HTTP 包 Last-Modified 頭信息判斷。  

    (12)、 jsonp (String)  : 在一個jsonp請求中重寫回調(diào)函數(shù)的名字。這個值用來替代在"callback=?"這種GET或POST請求中URL參數(shù)里的"callback"部分,

        比如 {jsonp:'onJsonPLoad'} 會導(dǎo)致將"onJsonPLoad=?"傳給服務(wù)器。

    (13)、 password (String)  : 用于響應(yīng)HTTP訪問認(rèn)證請求的密碼

    (14)、 processData (Boolean)  : (默認(rèn): true) 默認(rèn)情況下,發(fā)送的數(shù)據(jù)將被轉(zhuǎn)換為對象(技術(shù)上講并非字符串) 以配合默認(rèn)內(nèi)容類型

        " application/x-www-form-urlencoded "。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請設(shè)置為 false。

    (15)、 scriptCharset (String)  : 只有當(dāng)請求時dataType為"jsonp"或"script",并且type是"GET"才會用于強(qiáng)制修改charset。通常在本地和遠(yuǎn)程的內(nèi)容編碼不同時使用。

    (16)、 success (Function)  : 請求成功后的回調(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請求時傳遞的options參數(shù)       }

    (17)、 timeout (Number) : 設(shè)置請求超時時間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。

    (18)、 type (String)  : (默認(rèn): "GET") 請求方式 ("POST" 或 "GET"), 默認(rèn)為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器

        支持。

    (19)、 url (String)  : (默認(rèn): 當(dāng)前頁地址) 發(fā)送請求的地址。

    (20)、 username (String)  : 用于響應(yīng)HTTP訪問認(rèn)證請求的用戶名

    (21)、 xhr (Function)  : 需要返回一個XMLHttpRequest 對象。默認(rèn)在IE下是ActiveXObject 而其他情況下是XMLHttpRequest 。用于重寫或者提供一個增強(qiáng)的

        XMLHttpRequest 對象。這個參數(shù)在jQuery 1.3以前不可用。

     ps:上述的部分是 url  type  dataType  data  success 調(diào)用常用的參數(shù)設(shè)置,利用這幾個參數(shù)就可以成功實現(xiàn)ajax調(diào)用了.

    示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 //jQTest.js  2 function jqAjaxTest() {  3 var jqRequestUrl = "AjaxHandler.ashx";  4 //1、 加載并執(zhí)行一個 JS 文件  5  $.ajax({  6 type: "GET",  7 url: "js/jqLoadJs.js",  8 dataType: "script"  9  }); 10 //2、裝載一個 HTML 網(wǎng)頁最新版本  11  $.ajax({ 12 url: "test.htm", 13 cache: false, //沒有緩存的說 14 success: function(html) { 15 //alert(html); 16 $("#spanGetHtml").css("display", "block"); 17 $("#spanGetHtml").css("color", "red"); 18 $("#spanGetHtml").append(html); 19  } 20  }); 21 //3、獲取并解析一個xml文件(從服務(wù)端獲取xml) 22  $.ajax({ 23 type: 'GET', 24 dataType: 'xml', //這里可以不寫,但千萬別寫text或者h(yuǎn)tml 25 url: jqRequestUrl + "?action=jquerGetXmlRequest", 26 success: function(xml) { 27 //正確解析服務(wù)端的xml文件 28 $(xml).find("profile").each(function(i) { 29 var name = $(this).children("userName").text(); //取對象文本 30 var location = $(this).children("location").text(); 31 alert("Xml at SERVER is gotten by CLIENT:" + name + " is living in " + location); 32  }); 33  }, 34 error: function(xml) { 35 alert('An error happend while loading XML document '); 36  } 37  }); 38 //4、發(fā)送 XML 數(shù)據(jù)至服務(wù)器(客戶端發(fā)送xml到服務(wù)端) 39 var xmlDocument = "<profile>" + 40 " <userName>jeff wong</userName>" + 41 " <location>beijing</location>" + 42 "</profile>"; 43  $.ajax({ 44 url: jqRequestUrl + "?action=jqueryXmlRequest", 45 processData: false, //設(shè)置 processData 選項為 false,防止自動轉(zhuǎn)換數(shù)據(jù)格式。 46 //type: "xml", 47 cache: false, 48 type: "xml", 49  data: xmlDocument, 50 success: function(html) { 51 alert(html); //彈出提示 52 $("#spanResult").css("display", "block"); 53 $("#spanResult").css("color", "red"); 54 $("#spanResult").html(html); //給當(dāng)前dom的一個span元素賦值 55  }, 56 error: function(oXmlHttpReq, textStatus, errorThrown) { 57 alert("jquery ajax xml request failed"); 58 $("#spanResult").css("display", "block"); 59 $("#spanResult").css("color", "red"); 60 $("#spanResult").html("jquery ajax xml request failed"); //提示出錯 61  } 62  }); 63 //5、同步加載數(shù)據(jù)。發(fā)送請求時鎖住瀏覽器。需要鎖定用戶交互操作時使用同步方式。 64 var html = $.ajax({ 65 //沒有type 默認(rèn)為GET方式 66 url: jqRequestUrl + "?action=syncRequest", 67 async: false 68  }).responseText; 69  alert(html); 70 //6、顯式get測試 71  $.ajax({ 72 type: "GET", 73 url: jqRequestUrl + "?action=jquery&userName=" + $("#txtUserName").val(), 74 cache: false, 75 success: function(html) { 76 // alert(html); //彈出提示 77 $("#spanResult").css("display", "block"); 78 $("#spanResult").css("color", "red"); 79 $("#spanResult").html(html); //給當(dāng)前dom的一個span元素賦值 80  }, 81 error: function(oXmlHttpReq, textStatus, errorThrown) { 82 alert("jquery ajax request failed"); 83 $("#spanResult").css("display", "block"); 84 $("#spanResult").css("color", "red"); 85 $("#spanResult").html("jquery ajax request failed"); //提示出錯 86  } 87  }); 88 //7、顯式POST測試  89  $.ajax({ 90 type: "POST", 91  url: jqRequestUrl, 92 data: "action=jquerySaveData&userName=jeffwong&location=beijing", 93 success: function(html) { 94  alert(html); 95  } 96  }); 97 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

2、load(url,[data],[callback])

  載入遠(yuǎn)程 HTML 文件代碼并插入至 DOM 中。

  默認(rèn)使用 GET 方式 - 傳遞附加參數(shù)時自動轉(zhuǎn)換為 POST 方式。jQuery 1.2 中,可以指定選擇符,來篩選載入的 HTML 文檔,DOM 中將僅插入篩選出的 HTML 代碼。語法形如 "url #some > selector"。

  返回值 jQuery

  參數(shù)

     url (String)  : 待裝入 HTML 網(wǎng)頁網(wǎng)址。

     data (Map,String)  : (可選) 發(fā)送至服務(wù)器的 key/value 數(shù)據(jù)。在jQuery 1.3中也可以接受一個字符串了。

     callback (Callback)  : (可選) 載入成功時回調(diào)函數(shù)。

  示例

1 function jqAjaxTest() { 2 $("#spanResult").load("test.htm"); 3 $("#spanResult").css("display", "block"); 4 $("#spanResult").css("color", "red"); 5 }

3、jQuery.get(url,[data],[callback],[type])

  通過遠(yuǎn)程 HTTP GET 請求載入信息。

  這是一個簡單的 GET 請求功能以取代復(fù)雜 .ajax。請求成功時可調(diào)用回調(diào)函數(shù)。如果需要在出錯時執(zhí)行函數(shù),請使用.ajax。

  返回值  XMLHttpRequest

  參數(shù)

     url (String)  : 待載入頁面的URL地址

     data (Map)  : (可選) 待發(fā)送 Key/value 參數(shù)。

     callback (Function)  : (可選) 載入成功時回調(diào)函數(shù)。

     type (String)  : (可選) 返回內(nèi)容格式,xml, html, script, json, text, _default。

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
1 function jqAjaxTest() { 2 var jqRequestUrl = "AjaxHandler.ashx"; 3 $.get(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqGetNormalCallBack, 'text'); //返回數(shù)據(jù)類型 4 } 5 function jqGetNormalCallBack(oData) { 6 $("#spanResult").html(oData);//這里直接json數(shù)據(jù)綁定了,下一個jquery方法會有處理 7 $("#spanResult").css("display", "block"); 8 $("#spanResult").css("color", "red"); 9 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  ps:本例中,我們返回的是一段json類型的數(shù)據(jù),在客戶端沒有對json類型數(shù)據(jù)進(jìn)行處理,在下一個方法(jQuery.getJSON)中會改進(jìn)處理的。

4、jQuery.getJSON(url,[data],[callback])

  通過 HTTP GET 請求載入 JSON 數(shù)據(jù)。

  在 jQuery 1.2 中,您可以通過使用JSONP 形式的回調(diào)函數(shù)來加載其他網(wǎng)域的JSON數(shù)據(jù),如 "myurl?callback=?"。jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。 
  注意:此行以后的代碼將在這個回調(diào)函數(shù)執(zhí)行前執(zhí)行。

  返回值  XMLHttpRequest

  參數(shù)

     url (String)  : 發(fā)送請求地址。
     data (Map)  : (可選) 待發(fā)送 Key/value 參數(shù)。
     callback (Function)  : (可選) 載入成功時回調(diào)函數(shù)。

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandler.ashx";  3 //getJSON方法調(diào)用  4 $.getJSON(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqGetJsonCallBack); //返回json數(shù)據(jù)類型  5 }  6 //對json數(shù)據(jù)進(jìn)行處理 (oData是json類型的數(shù)據(jù))  7 function jqGetJsonCallBack(oData) {  8 var oJsonStr = "";  9 //取json中的數(shù)據(jù),并呈現(xiàn) 10 oJsonStr += "userName:" + oData.userName + "  location:" + oData.location + "<br/>"; 11 //在div中顯示所有數(shù)據(jù) 12 $("#divResult").html(oJsonStr); 13 $("#divResult").css("display", "block"); 14 $("#divResult").css("color", "red"); 15 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

5、jQuery.getScript(url,[callback])

  通過 HTTP GET 請求載入并執(zhí)行一個 JavaScript 文件。

  jQuery 1.2 版本之前,getScript 只能調(diào)用同域 JS 文件。 1.2中,您可以跨域調(diào)用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步執(zhí)行腳本。如果通過 getScript 加入腳本,請加入延時函數(shù)。

  返回值  XMLHttpRequest

  參數(shù)

     url (String)  : 待載入 JS 文件地址。

     callback (Function)  : (可選) 成功載入后回調(diào)函數(shù)。

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
1 function jqAjaxTest() { 2 var jsUrl = "js/jqLoadJs.js"; 3 //getScript方法調(diào)用 4  $.getScript(jsUrl, jqGetJsCallBack); 5 } 6 //oData返回的是整個js路徑下js文件內(nèi)容 7 function jqGetJsCallBack(oData) { 8  alert(oData); 9 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

6、jQuery.post(url,[data],[callback],[type])

  通過遠(yuǎn)程 HTTP POST 請求載入信息。

  這是一個簡單的 POST 請求功能以取代復(fù)雜 .ajax。請求成功時可調(diào)用回調(diào)函數(shù)。如果需要在出錯時執(zhí)行函數(shù),請使用.ajax。

  返回值  XMLHttpRequest

  參數(shù)

     url (String)  : 發(fā)送請求地址。

     data (Map)  : (可選) 待發(fā)送 Key/value 參數(shù)。

     callback (Function)  : (可選) 發(fā)送成功時回調(diào)函數(shù)。

     type (String)  : (可選) 返回內(nèi)容格式,xml, html, script, json, text, _default。

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandler.ashx";  3 $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text"); //返回text數(shù)據(jù)類型  4 }  5 function jqPostCallBack(oData) {  6 //在div中顯示所有數(shù)據(jù)  7 $("#divResult").html(oData);  8 $("#divResult").css("display", "block");  9 $("#divResult").css("color", "red"); 10 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

 

二、Ajax事件

  1、ajaxComplete(callback)

    AJAX 請求完成時執(zhí)行函數(shù)。Ajax 事件。

    XMLHttpRequest 對象和設(shè)置作為參數(shù)傳遞給回調(diào)函數(shù)。

    返回值  jQuery

    參數(shù)

     callback (Function)  : 待執(zhí)行函數(shù)

    示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandler.ashx";  3 $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text"); //返回text數(shù)據(jù)類型  4 //AJAX 請求完成時執(zhí)行函數(shù)  5 $("#divResult").ajaxComplete(function(event, request, settings) {  6 $(this).append("<br/>請求完成.");  7  });  8 }  9 function jqPostCallBack(oData) { 10 //在div中顯示所有數(shù)據(jù) 11 $("#divResult").html(oData); 12 $("#divResult").css("display", "block"); 13 $("#divResult").css("color", "red"); 14 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  2、ajaxError(callback)

    AJAX 請求發(fā)生錯誤時執(zhí)行函數(shù)。Ajax 事件。

    XMLHttpRequest 對象和設(shè)置作為參數(shù)傳遞給回調(diào)函數(shù)。捕捉到的錯誤可作為最后一個參數(shù)傳遞。

    返回值  jQuery

    參數(shù)

     callback (Function)  : 待執(zhí)行函數(shù)

1 function (event, XMLHttpRequest, ajaxOptions, thrownError) { 2 // thrownError 只有當(dāng)異常發(fā)生時才會被傳遞 3 this; // 監(jiān)聽的 dom 元素 4 }

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandlers.ashx"; //正確的文件名 AjaxHandler.ashx 這里故意寫錯 引發(fā)ajaxError事件  3 $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");  4 }  5 //AJAX 請求發(fā)生錯誤時執(zhí)行函數(shù) (這一段放在jqAjaxTest函數(shù)內(nèi)也可以)  6 $("#divResult").ajaxError(function(event, request, settings) {  7 $("#divResult").css("display", "block");  8 $("#divResult").css("color", "red");  9 $(this).append("<br/>出錯頁面:" + settings.url); 10 }); 11 function jqPostCallBack(oData) { 12 //在div中顯示所有數(shù)據(jù) 13 $("#divResult").html(oData); 14 $("#divResult").css("display", "block"); 15 $("#divResult").css("color", "red"); 16 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  3、ajaxSend(callback)

  AJAX 請求發(fā)送前執(zhí)行函數(shù)。Ajax 事件。

  XMLHttpRequest 對象和設(shè)置作為參數(shù)傳遞給回調(diào)函數(shù)。

  返回值  jQuery

  參數(shù)

  callback (Function) : 待執(zhí)行函數(shù)

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandler.ashx";  3 $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");  4 }  5 //AJAX 請求發(fā)送前執(zhí)行函數(shù)  6 $("#divResult").ajaxSend(function(evt, request, settings) {  7 $("#divResult").css("display", "block");  8 $("#divResult").css("color", "red");  9 $(this).append("<br/>開始請求: " + settings.url + "<br/>"); 10 }); 11 function jqPostCallBack(oData) { 12 //在div中顯示所有數(shù)據(jù) 13 $("#divResult").append(oData); 14 $("#divResult").css("display", "block"); 15 $("#divResult").css("color", "red"); 16 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  4、ajaxStart(callback)

  AJAX 請求開始時執(zhí)行函數(shù)。Ajax 事件。

  返回值  jQuery

  參數(shù)

  callback (Function) : 待執(zhí)行函數(shù)

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandler.ashx";  3 $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");  4 }  5 //AJAX 請求開始時執(zhí)行函數(shù)  6 $("#divResult").ajaxStart(function() {  7 $("#divResult").css("display", "block");  8 $("#divResult").css("color", "red");  9 $(this).append("<br/>請求開始了<br/>"); 10 }); 11 function jqPostCallBack(oData) { 12 //在div中顯示所有數(shù)據(jù) 13 $("#divResult").append(oData); 14 $("#divResult").css("display", "block"); 15 $("#divResult").css("color", "red"); 16 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  5、ajaxStop(callback)

  AJAX 請求結(jié)束時執(zhí)行函數(shù)。Ajax 事件。

  返回值  jQuery

  參數(shù)

  callback (Function) : 待執(zhí)行函數(shù)

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandler.ashx";  3 $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");  4 }  5 //AJAX 請求開始時執(zhí)行函數(shù)  6 $("#divResult").ajaxStop(function() {  7 $(this).append("<br/>請求已經(jīng)結(jié)束了<br/>");  8 });  9 function jqPostCallBack(oData) { 10 //在div中顯示所有數(shù)據(jù) 11 $("#divResult").append(oData); 12 $("#divResult").css("display", "block"); 13 $("#divResult").css("color", "red"); 14 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  6、ajaxSuccess(callback)

  AJAX 請求成功時執(zhí)行函數(shù)。Ajax 事件。

  XMLHttpRequest 對象和設(shè)置作為參數(shù)傳遞給回調(diào)函數(shù)。

  返回值  jQuery

  參數(shù)

  callback (Function) : 待執(zhí)行函數(shù)

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 function jqAjaxTest() {  2 var jqRequestUrl = "AjaxHandler.ashx";  3 $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");  4 }  5 //AJAX 請求成功時執(zhí)行函數(shù)  6 $("#divResult").ajaxSuccess(function(evt, request, settings) {  7 $(this).append("<br/>請求成功<br/>");  8 $(this).append(settings.url);  9 }); 10 function jqPostCallBack(oData) { 11 //在div中顯示所有數(shù)據(jù) 12 $("#divResult").append(oData); 13 $("#divResult").css("display", "block"); 14 $("#divResult").css("color", "red"); 15 }
jQuery學(xué)習(xí)筆記之Ajax用法詳解

三、其他

  1、jQuery.ajaxSetup(options)

  設(shè)置全局 AJAX 默認(rèn)選項。

  參數(shù)見 '$.ajax' 說明。

  返回值  jQuery

  參數(shù)

   options (可選) : 選項設(shè)置。所有設(shè)置項均為可選設(shè)置。 

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
1 //設(shè)置 AJAX 請求默認(rèn)地址為 "AjaxHandler.ashx",禁止觸發(fā)全局 AJAX 事件,用 POST 代替默認(rèn) GET 方法。其后的 AJAX 請求不再設(shè)置任何選項參數(shù)。  2 $.ajaxSetup({ 3 url: "AjaxHandler.ashx", 4 global: false, 5 type: "POST" 6 });
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  2、serialize()

  序列化表單內(nèi)容為字符串。

  返回值  jQuery

  參數(shù)

  序列化表單內(nèi)容為字符串,用于 Ajax 請求。

  示例

1 $(document).ready(function() { 2 var oSerializedStr = $("form").serialize(); //序列化表單內(nèi)容為字符串 3 $("#results").append("<tt>" + oSerializedStr + "</tt>"); 4 });

  文檔片段

jQuery學(xué)習(xí)筆記之Ajax用法詳解
 1 <body>  2 <p id="results">  3 <b>Results: </b>  4 

5 <form> 6 <select name="single"> 7 <option>Single</option> 8 <option>Single2</option> 9 </select> 10 <select name="multiple" multiple="multiple"> 11 <option selected="selected">Multiple</option> 12 <option>Multiple2</option> 13 <option selected="selected">Multiple3</option> 14 </select><br /> 15 <input type="checkbox" name="check" value="check1" /> 16 check1 17 <input type="checkbox" name="check" value="check2" checked="checked" /> 18 check2 19 <input type="radio" name="radio" value="radio1" checked="checked" /> 20 radio1 21 <input type="radio" name="radio" value="radio2" /> 22 radio2 23 </form> 24 <script src="js/jQTest.js" type="text/javascript"></script> 25 </body>
jQuery學(xué)習(xí)筆記之Ajax用法詳解

  3、serializeArray()

  序列化表單內(nèi)容,返回 JSON 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)。

  返回值  jQuery

  參數(shù)

  序列化表單內(nèi)容為JSON ,用于 Ajax 請求。

  示例

jQuery學(xué)習(xí)筆記之Ajax用法詳解
1 $(document).ready(function() { 2 var fields = $("select, :radio").serializeArray(); //序列化表單select和raido為json 3 jQuery.each(fields, function(i, field) { 4 $("#results").append(field.value + " "); 5  }); 6 });
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI