Jquery操作Ajax方法小結(jié)
ajax() 方法通過 HTTP 請求加載遠程數(shù)據(jù)。
該方法是 jQuery 底層 AJAX 實現(xiàn)。簡單易用的高層實現(xiàn)見 $.get, $.post 等。$.ajax() 返回其創(chuàng)建的 XMLHttpRequest 對象。大多數(shù)情況下你無需直接操作該函數(shù),除非你需要操作不常用的選項,以獲得更多的靈活性。
最簡單的情況下,$.ajax() 可以不帶任何參數(shù)直接使用。
注意:所有的選項都可以通過 $.ajaxSetup() 函數(shù)來全局設(shè)置。
語法
jQuery.ajax([settings])
參數(shù) | 描述 |
---|---|
settings |
可選。用于配置 Ajax 請求的鍵值對集合。 可以通過 $.ajaxSetup() 設(shè)置任何選項的默認值。 |
jQuery.get()
使用一個HTTP GET 請求從服務(wù)器加載數(shù)據(jù)。
jQuery.get(url [,data] [,success(data,textStatus,jqXHR)] [dtaType])
url 一個包含發(fā)送請求的URL
data 發(fā)送給服務(wù)器的字符串后鍵值對
success() 當請求成功時回調(diào)的函數(shù)
dataType 從服務(wù)器返回的預(yù)期數(shù)據(jù)。
用法:
$.get("test.cgi", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
jQuery.getJSON()
使用一個HTTP GET 請求服務(wù)器加載JSON 編碼的數(shù)據(jù)。
jQuery.getJSON(url [,data] [,success(data,textStatus,jqXHR)])
url 一個包含發(fā)送請求的URL
data 發(fā)送給服務(wù)器的字符串后鍵值對
success() 當請求成功時回調(diào)的函數(shù)
jQuery.getScript()
使用一個HTTP GET請求從服務(wù)器加載并執(zhí)行一個JavaScript文件。
jQuery.getScript(url[success(script,textStatus,jqXHR)])
url 一個包含發(fā)送請求的URL
data 發(fā)送給服務(wù)器的字符串后鍵值對
用法:
$.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.'); });
jQuery.post([settings])
使用一個HTTP POST請求從服務(wù)器加載數(shù)據(jù)。
jQuery.post(url[,data][,success(data,textStatus,jqXHR)][,dataType])
url 一個包含發(fā)送請求的URL
data 發(fā)送給服務(wù)器的字符串后鍵值對
success() 當請求成功時回調(diào)的函數(shù)
用法:
$.post("test.php", { name: "John", time: "2pm" }, function(data) { alert("Data Loaded: " + data); });
.load()
從服務(wù)器載入數(shù)據(jù)并且將返回的HTML代碼并插入至匹配的元素中。
.load(url[,data][,complete(responseText,textStatus,XMLHttpRequest)])
url 一個包含發(fā)送請求的URL
data 發(fā)送給服務(wù)器的字符串后鍵值對
complete 當請求成功時回調(diào)的函數(shù)
用法:
$('#result').load('ajax/test.html #container');
jQuery.ajax()
執(zhí)行一個異步的HTTP(ajax)的請求。
參數(shù):
url 類型: Sting 發(fā)送請求的地址(默認當前頁面)
type 類型:Sting (默認為GET) 請求方式(”POST“或”GET“)
timeout 類型:Number 設(shè)置請求超時時間(毫秒),此設(shè)置默認覆蓋全局。
async 類型:Boolean 默認設(shè)置(true)默認設(shè)置下所有請求均為一步請求,如果需要同步請求,設(shè)置為false。
beforeSend 類型:function 發(fā)送請求前可修改 XMLHttpRequest 對象的函數(shù),如添加自定義 HTTP 頭。XMLHttpRequest 對象是唯一的參數(shù)。
cache 類型:Boolean 默認為(true) 設(shè)置為false 將不會從瀏覽器緩存中加載請求信息。
complete 類型:Function 請求完成后回調(diào)函數(shù),(請求成功或失敗時均調(diào)用)參數(shù): XMLHttpRequest 對象,成功信息字符串。function ( XMLHttpRequest, textStatus) {this; // the options for this ajax request}
contentType 類型為:String 發(fā)送信息至服務(wù)器時內(nèi)容編碼類型,默認值適合大多數(shù)應(yīng)用場合。
data 類型:Object String 發(fā)送到服務(wù)器的數(shù)據(jù)。將自動轉(zhuǎn)換為請求字符串格式,GET請求附加在URL后
dataType 類型:String 預(yù)期服務(wù)器返回的數(shù)據(jù)類型, ”xml“返回XML文檔?!県tml“返回純文本信息,包含script 元素?!眘cript“返回純文本JavaScript 代碼,不會自動緩存 結(jié)果。”json“返回JSON 數(shù)組?!眏sonp“JSONP格式。
error 類型:function 請求失敗時將調(diào)用此方法。
global 類型:Boolean 是否觸發(fā)全局AJAX事件。默認為(true) 設(shè)置為false 將不會觸發(fā)全局ajax 事件,可用于控制不同的AJAX事件。
ifModified 類型:Boolean 默認為false 僅在服務(wù)器數(shù)據(jù)改變時獲取新數(shù)據(jù)。
processData 類型:Boolean 默認為(true)默認情況下,發(fā)送的數(shù)據(jù)發(fā)送的數(shù)據(jù)將被轉(zhuǎn)換為對象(技術(shù)上講并非字符串) 以配合默認內(nèi)容類型 "application/x-www-form- urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請設(shè)置為 false。
success 類型:Function 請求成功后回調(diào)函數(shù)。這個方法有兩個參數(shù):服務(wù)器返回數(shù)據(jù),返回狀態(tài)。
$(document).ready(function() { jQuery("#clearCac").click(function() { jQuery.ajax({ url: "/Handle/Do.aspx", type: "post", data: { id: '0' }, dataType: "json", success: function(msg) { alert(msg); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, complete: function(XMLHttpRequest, textStatus) { this; // 調(diào)用本次AJAX請求時傳遞的options參數(shù) } }); }); });
error事件返回的第一個參數(shù)XMLHttpRequest有一些有用的信息:
XMLHttpRequest.readyState:
狀態(tài)碼
0 - (未初始化)還沒有調(diào)用send()方法
1 - (載入)已調(diào)用send()方法,正在發(fā)送請求
2 - (載入完成)send()方法執(zhí)行完成,已經(jīng)接收到全部響應(yīng)內(nèi)容
3 - (交互)正在解析響應(yīng)內(nèi)容
4 - (完成)響應(yīng)內(nèi)容解析完成,可以在客戶端調(diào)用了
XMLHttpRequest.status:
1xx-信息提示
這些狀態(tài)代碼表示臨時的響應(yīng)??蛻舳嗽谑盏匠R?guī)響應(yīng)之前,應(yīng)準備接收一個或多個1xx響應(yīng)。
100-繼續(xù)。
101-切換協(xié)議。
2xx-成功
這類狀態(tài)代碼表明服務(wù)器成功地接受了客戶端請求。
200-確定??蛻舳苏埱笠殉晒?。
201-已創(chuàng)建。
202-已接受。
203-非權(quán)威性信息。
204-無內(nèi)容。
205-重置內(nèi)容。
206-部分內(nèi)容。
3xx-重定向
客戶端瀏覽器必須采取更多操作來實現(xiàn)請求。例如,瀏覽器可能不得不請求服務(wù)器上的不同的頁面,或通過代理服務(wù)器重復(fù)該請求。
301-對象已永久移走,即永久重定向。
302-對象已臨時移動。
304-未修改。
307-臨時重定向。
4xx-客戶端錯誤
發(fā)生錯誤,客戶端似乎有問題。例如,客戶端請求不存在的頁面,客戶端未提供有效的身份驗證信息。400-錯誤的請求。
401-訪問被拒絕。IIS定義了許多不同的401錯誤,它們指明更為具體的錯誤原因。這些具體的錯誤代碼在瀏覽器中顯示,但不在IIS日志中顯示:
401.1-登錄失敗。
401.2-服務(wù)器配置導(dǎo)致登錄失敗。
401.3-由于ACL對資源的限制而未獲得授權(quán)。
401.4-篩選器授權(quán)失敗。
401.5-ISAPI/CGI應(yīng)用程序授權(quán)失敗。
401.7–訪問被Web服務(wù)器上的URL授權(quán)策略拒絕。這個錯誤代碼為IIS6.0所專用。
403-禁止訪問:IIS定義了許多不同的403錯誤,它們指明更為具體的錯誤原因:
403.1-執(zhí)行訪問被禁止。
403.2-讀訪問被禁止。
403.3-寫訪問被禁止。
403.4-要求SSL。
403.5-要求SSL128。
403.6-IP地址被拒絕。
403.7-要求客戶端證書。
403.8-站點訪問被拒絕。
403.9-用戶數(shù)過多。
403.10-配置無效。
403.11-密碼更改。
403.12-拒絕訪問映射表。
403.13-客戶端證書被吊銷。
403.14-拒絕目錄列表。
403.15-超出客戶端訪問許可。
403.16-客戶端證書不受信任或無效。
403.17-客戶端證書已過期或尚未生效。
403.18-在當前的應(yīng)用程序池中不能執(zhí)行所請求的URL。這個錯誤代碼為IIS6.0所專用。
403.19-不能為這個應(yīng)用程序池中的客戶端執(zhí)行CGI。這個錯誤代碼為IIS6.0所專用。
403.20-Passport登錄失敗。這個錯誤代碼為IIS6.0所專用。
404-未找到。
404.0-(無)–沒有找到文件或目錄。
404.1-無法在所請求的端口上訪問Web站點。
404.2-Web服務(wù)擴展鎖定策略阻止本請求。
404.3-MIME映射策略阻止本請求。
405-用來訪問本頁面的HTTP謂詞不被允許(方法不被允許)
406-客戶端瀏覽器不接受所請求頁面的MIME類型。
407-要求進行代理身份驗證。
412-前提條件失敗。
413–請求實體太大。
414-請求URI太長。
415–不支持的媒體類型。
416–所請求的范圍無法滿足。
417–執(zhí)行失敗。
423–鎖定的錯誤。
5xx-服務(wù)器錯誤
服務(wù)器由于遇到錯誤而不能完成該請求。
500-內(nèi)部服務(wù)器錯誤。
500.12-應(yīng)用程序正忙于在Web服務(wù)器上重新啟動。
500.13-Web服務(wù)器太忙。
500.15-不允許直接請求Global.asa。
500.16–UNC授權(quán)憑據(jù)不正確。這個錯誤代碼為IIS6.0所專用。
500.18–URL授權(quán)存儲不能打開。這個錯誤代碼為IIS6.0所專用。
500.100-內(nèi)部ASP錯誤。
501-頁眉值指定了未實現(xiàn)的配置。
502-Web服務(wù)器用作網(wǎng)關(guān)或代理服務(wù)器時收到了無效響應(yīng)。
502.1-CGI應(yīng)用程序超時。
502.2-CGI應(yīng)用程序出錯。application.
503-服務(wù)不可用。這個錯誤代碼為IIS6.0所專用。
504-網(wǎng)關(guān)超時。
505-HTTP版本不受支持。
jQuery.param()
創(chuàng)建一個數(shù)組,一個普通的對象,或一個jQuery對象的序列化表現(xiàn)形似,用于URL查詢字符串或Ajax請求。
jQuery.param(obj)
obj 一個用來序列化的一個數(shù)組,一個普通的對象,或一個jQuery對象。
jQuery.param( obj, traditional )
obj 一個用來序列化的一個數(shù)組,一個普通的對象,或一個jQuery對象。
traditional
一個布爾值,指示是否執(zhí)行了傳統(tǒng)的“shallow”的序列化。
$.param({ a: [2,3,4] }) // "a[]=2&a[]=3&a[]=4"
$.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d[]=4&d[2][e]=5"
- jQuery+Ajax+js實現(xiàn)請求json格式數(shù)據(jù)并渲染到html頁面操作示例
- 為jquery的ajax請求添加超時timeout時間的操作方法
- JQuery中Ajax的操作完整例子
- jQuery+Ajax實現(xiàn)無刷新操作
- jquery插件ajaxupload實現(xiàn)文件上傳操作
- Jquery ajax加載等待執(zhí)行結(jié)束再繼續(xù)執(zhí)行下面代碼操作
- Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法
- jQuery學(xué)習(xí)筆記之 Ajax操作篇(二) - 數(shù)據(jù)傳遞
- 通過實例解析jQ Ajax操作相關(guān)原理
相關(guān)文章
jquery點擊獲取動態(tài)數(shù)據(jù)進行傳參問題
這篇文章主要介紹了jquery點擊獲取動態(tài)數(shù)據(jù)進行傳參問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12輕量級jQuery插件slideBox實現(xiàn)帶底欄輪播(焦點圖)代碼
這篇文章主要介紹了輕量級jQuery插件slideBox實現(xiàn)帶底欄輪播(焦點圖)代碼,代碼簡單易懂,非常實用,特此分享腳本之家平臺供大家學(xué)習(xí)2016-03-03基于jquery實現(xiàn)智能提示控件intellSeach.js
這篇文章主要為大家詳細介紹了基于jquery實現(xiàn)智能提示控件intellSeach.js的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-03-03基于jQuery實現(xiàn)文本框只能輸入數(shù)字(小數(shù)、整數(shù))
在實際應(yīng)用中,文本框中有時候只能夠允許輸入整數(shù),但是有時候可能更為"博愛"一點,可以允許輸入浮點數(shù),下面就通過實例代碼介紹一下如何利用jquery實現(xiàn)此功能2016-01-01關(guān)于jquery中全局函數(shù)each使用介紹
jquery 包含了兩個 each 一個是 $().each 另一個是 $.each 區(qū)別就在于前一個是 jquery對象的內(nèi)置函數(shù) 而后一個 這是對象的遍歷函數(shù)2013-12-12