Ajax 相關(guān)函數(shù)
Ajax 相關(guān)函數(shù)
jQuery 提供了一些相關(guān)函數(shù)能夠輔助 Ajax 函數(shù)。
1. jQuery.ajaxSetup( options )
無(wú)傳回值
說(shuō)明:
#設(shè)定全域AJAX 預(yù)設(shè)options 選項(xiàng)。
講解:
有時(shí)我們希望設(shè)定頁(yè)面上所有 Ajax 屬性的預(yù)設(shè)行為.那麼就可以使用此函數(shù)設(shè)定options選項(xiàng), 此後所有的 Ajax 請(qǐng)求的預(yù)設(shè)options將被更改。
例如在頁(yè)面載入時(shí), 我使用下面的程式碼設(shè)定Ajax 的預(yù)設(shè)option 選項(xiàng):
$.ajaxSetup({ url: "../data/AjaxGetMethod.aspx", data: { "param": "ziqiu.zhang" }, global: false, type: "POST", success: function(data, textStatus) { $("#divResult").html(data); }}); 此后我們可以使用無(wú)參數(shù)的get(),post()或者ajax()方法發(fā)送 ajax 請(qǐng)求.完整的示例代碼如下: <!doctype html><html><head> <meta charset="utf-8"/> <title>jQuery Ajax - Load</title> <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script> <script> $(document).ready(function() { $.ajaxSetup({ url: "../data/AjaxGetMethod.aspx", data: { "param": "ziqiu.zhang" }, global: false, type: "POST", success: function(data, textStatus) { $("#divResult").html(data); } }); $("#btnAjax").click(function(event) { $.ajax(); }); $("#btnGet").click(function(event) { $.get(); }); $("#btnPost").click(function(event) { $.post(); }); $("#btnGet2").click(function(event) { $.get("../data/AjaxGetMethod.aspx",{ "param": "other" }); }); }); </script></head> <body> <button id="btnAjax">nontransfer param call ajax() method</button><br /> <button id="btnGet">nontransfer param call get() method</button><br /> <button id="btnPost">nontransfer param call post() method</button><br /> <button id="btnGet2">transfer param call get() method , use global default callback</button><br /> <br /> <div id="divResult"></div> </body> </html>
注意當(dāng)使用get()或post()方法時(shí),除了type 參數(shù)將被重寫(xiě)為GET或POST外, 其他參數(shù)只要不傳遞都是使用預(yù)設(shè)的全域option。如果傳遞了某一個(gè)選項(xiàng), 例如最後一個(gè)按鈕傳遞了url和參數(shù),則本次呼叫會(huì)以傳遞的選項(xiàng)為準(zhǔn)。沒(méi)有傳遞的選項(xiàng)例如回呼函數(shù)還是會(huì)使用全域option設(shè)定值。
2.serialize( )
#Returns:?String
說(shuō)明:
序列表表格內(nèi)容為字串,用於Ajax 請(qǐng)求。
序列化最常使用在將表單資料傳送到伺服器端時(shí)。被序列化後的資料是標(biāo)準(zhǔn)格式, 可以被幾乎所有的伺服器端支援。
為了盡可能正常工作, 要求被序列化的表單欄位都有 name 屬性, 只有一個(gè) eid 是無(wú)法工作的。
像這樣寫(xiě)name 屬性:?<input id="email" name="email" type="text" />
講解:
#serialize()函數(shù)將要傳送給伺服器的form中的表單物件拼接成一個(gè)字串。便於我們使用 Ajax 發(fā)送時(shí)獲取表單資料。這和一個(gè)form按照Get方式提交時(shí), 自動(dòng)將表單物件的名稱/值放到url上提交差不多。
3.serializeArray( )
Returns:?Array< Object>
說(shuō)明:
使用此函數(shù)取得到的是JSON 物件,但是jQuery 中沒(méi)有提供將JSON 物件轉(zhuǎn)換為JSON 字串的方法。因此需要藉助於插件,如原文中提到的jquery.json這個(gè)插件