您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“jQuery.ajax使用的方法”,內容詳細,步驟清晰,細節處理妥當,希望這篇“jQuery.ajax使用的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
jQuery.ajax( url [, settings ] )說明: 執行一個異步的HTTP(Ajax)的請求。
url
類型: String
一個用來包含發送請求的URL字符串。
settings
類型: PlainObject
一個以"{鍵:值}"組成的AJAX 請求設置。所有選項都是可選的。可以使用$.ajaxSetup()設置任何默認參數。看jQuery.ajax( settings )下所有設置的完整列表。
jQuery.ajax( [settings ] )
settings
類型: PlainObject
一個以"{鍵:值}"組成的AJAX 請求設置。所有選項都是可選的。可以使用$.ajaxSetup()設置任何默認參數。
accepts (默認: 取決于數據類型)
類型: PlainObject
內容類型發送請求頭(Content-Type),用于通知服務器該請求需要接收何種類型的返回結果。如果accepts設置需要修改,推薦在$.ajaxSetup() 方法中設置一次。
async (默認: true)
類型: Boolean
默認設置下,所有請求均為異步請求(也就是說這是默認設置為 true )。如果需要發送同步請求,請將此選項設置為 false 。跨域請求和 dataType: "jsonp" 請求不支持同步操作。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執行。從 jQuery 1.8 開始, jqXHR ($.Deferred)中使用 async: false 已經過時。您必須使用的 success/error/complete 的回調選項代替相應的jqXHR對象的方法,比如jqXHR.done() 或者過時的jqXHR.success()
beforeSend
類型: Function( jqXHR jqXHR, PlainObject settings )
請求發送前的回調函數,用來修改請求發送前jqXHR(在jQuery 1.4.x的中,XMLHttpRequest)對象,此功能用來設置自定義 HTTP 頭信息,等等。該jqXHR和設置對象作為參數傳遞。這是一個Ajax事件 。在beforeSend函數中返回false將取消這個請求。從jQuery 1.5開始, beforeSend選項將被訪問,不管請求的類型。
cache (默認: true, dataType為"script"和"jsonp"時默認為false)
類型: Boolean
如果設置為 false ,瀏覽器將不緩存此頁面。注意: 設置cache為 false將在 HEAD和GET請求中正常工作。它的工作原理是在GET請求參數中附加"_={timestamp}"(譯者注:時間戳)。該參數不是其他請求所必須的,除了在IE8中,當一個POST請求一個已經用GET請求過的URL。
complete
類型: Function( jqXHR jqXHR, String textStatus )
請求完成后回調函數 (請求success 和 error之后均調用)。這個回調函數得到2個參數: jqXHR (在 jQuery 1.4.x中是 XMLHTTPRequest) 對象和一個描述請求狀態的字符串("success", "notmodified", "error", "timeout", "abort", 或者 "parsererror") 。從jQuery 1.5開始, complete設置可以接受一個函數的數組。每個函數將被依次調用。這是一個Ajax事件 。
contents
類型: PlainObject
一個以"{字符串/正則表達式}"配對的對象,根據給定的內容類型,解析請求的返回結果。 (1.5新增)
contentType (默認: 'application/x-www-form-urlencoded; charset=UTF-8')
類型: String
發送信息至服務器時內容編碼類型。默認值是"application/x-www-form-urlencoded; charset=UTF-8",適合大多數情況。如果你明確地傳遞了一個內容類型(Content-Type)給 $.ajax(),那么他必定會發送給服務器(即使沒有數據要發送)。數據將總是使用UTF-8字符集傳遞給服務器;你必須在服務器端進行適當的解碼。
context
類型: Object
這個對象用于設置Ajax相關回調函數的上下文。 默認情況下,這個上下文是一個ajax請求使用的參數設置對象,($.ajaxSettings合并獨傲這個設置,傳遞給$.ajax)。比如指定一個DOM元素作為context參數,這樣就設置了complete回調函數的上下文為這個DOM元素。就像這樣:
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
$(this).addClass("done");
});
converters (默認: {"* text": window.String, "text html": true, "text json": jQuery.parseJSON, "text xml": jQuery.parseXML})
類型: PlainObject
一個數據類型到數據類型轉換器的對象。每個轉換器的值是一個函數,返回經轉換后的請求結果。 ( 1.5新增)
crossDomain (默認: 同域請求為false, 跨域請求為true)
類型: Boolean
如果你想在同一域中強制跨域請求(如JSONP形式),例如,想服務器端重定向到另一個域,那么需要將crossDomain設置為 true 。 ( 1.5 新增)
data
類型: Object, String
發送到服務器的數據。將自動轉換為請求字符串格式。GET 請求中將附加在 URL 后面。查看 processData 選項說明,以禁止此自動轉換。對象必須為"{鍵:值}"格式。如果這個參數是一個數組,jQuery會按照traditional 參數的值, 將自動轉化為一個同名的多值查詢字符串(查看下面的說明)。注:如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
dataFilter
類型: Function( Object data, String type ) => Object
一個函數被用來處理XMLHttpRequest的原始響應數據。這是一個預過濾功能,凈化響應。您應該返回安全數據。提供data和type兩個參數:data是Ajax返回的原始數據,type是調用jQuery.ajax時提供的dataType參數。
dataType (默認: Intelligent Guess (xml, json, script, or html))
類型: String
預期服務器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息來智能判斷,比如XML MIME類型就被識別為XML。在1.4中,JSON就會生成一個JavaScript對象,而script則會執行這個腳本。隨后服務器端返回的數據會根據這個值解析后,傳遞給回調函數。可用值:
"xml": 返回 XML 文檔,可用 jQuery 處理。.
"html": 返回純文本 HTML 信息;包含的script標簽會在插入dom時執行。
"script": 把響應的結果當作 JavaScript 執行。并將其當作純文本返回。默認情況下不會通過在URL中附加查詢字符串變量 "_=[TIMESTAMP]" 進行自動緩存結果,除非設置了cache參數為true。Note: 在遠程請求時(不在同一個域下),所有POST請求都將轉為GET請求。(因為將使用DOM的script標簽來加載)
"json": 把響應的結果當作 JSON 執行,并返回一個JavaScript對象。在 jQuery 1.4 中,JSON 格式的數據以嚴格的方式解析,如果格式有錯誤,jQuery都會被拒絕并拋出一個解析錯誤的異常。(見json.org的更多信息,正確的JSON格式。)
"jsonp": 以 JSONP 的方式載入 JSON 數據塊。會自動在所請求的URL最后添加 "?callback=?"。默認情況下不會通過在URL中附加查詢字符串變量 "_=[TIMESTAMP]" 進行自動緩存結果,除非將 cache參數設置為true。
"text": 返回純文本字符串。
多個空格分割的值:從 jQuery 1.5 開始, jQuery可以內容類型(Content-Type)頭收到并轉換一個您需要的數據類型。例如,如果你想要一個文本響應為XML處理,使用"text xml"數據類型。您也可以將一個JSONP的請求,以文本形式接受,并用jQuery以XML解析: "jsonp text xml"。同樣地可以使用"jsonp xml"簡寫,首先會嘗試從 jsonp 到 xml 的轉換,如果轉換失敗,就先將 jsonp 轉換成 text, 然后再由 text 轉換成 xml。
error
類型: Function( jqXHR jqXHR, String textStatus, String errorThrown )
請求失敗時調用此函數。有以下三個參數:jqXHR (在 jQuery 1.4.x前為XMLHttpRequest) 對象、描述發生錯誤類型的一個字符串 和 捕獲的異常對象。如果發生了錯誤,錯誤信息(第二個參數)除了得到null之外,還可能是"timeout", "error", "abort" ,和 "parsererror"。 當一個HTTP錯誤發生時,errorThrown 接收HTTP狀態的文本部分,比如: "Not Found"(沒有找到) 或者 "Internal Server Error."(服務器內部錯誤)。 從jQuery 1.5開始, 在error設置可以接受函數組成的數組。每個函數將被依次調用。 注意:此處理程序在跨域腳本和JSONP形式的請求時不被調用。這是一個 Ajax Event。
global (默認: true)
類型: Boolean
無論怎么樣這個請求將觸發全局AJAX事件處理程序。默認是true 。設置為 false 將不會觸發全局 AJAX 事件,如 ajaxStart 或者 ajaxStop。這可以用來控制各種 Ajax Event.
headers (默認: {})
類型: PlainObject
一個額外的"{鍵:值}"對映射到請求一起發送。此設置會在beforeSend 函數調用之前被設置 ;因此,請求頭中的設置值,會被beforeSend 函數內的設置覆蓋 。 (1.5 新增 )
ifModified (默認: false)
類型: Boolean
只有上次請求響應改變時,才允許請求成功。使用 HTTP 包 Last-Modified 頭信息判斷。默認值是false,忽略HTTP頭信息。在jQuery 1.4中,他也會檢查服務器指定的'etag'來確定數據沒有被修改過。
isLocal (默認: 取決于當前的位置協議)
類型: Boolean
允許當前環境被認定為“本地”,(如文件系統),即使jQuery默認情況下不會這么做。以下協議目前公認為本地:file, *-extension, and widget。如果isLocal設置需要修改,建議在$.ajaxSetup()方法中這樣做一次。 (1.5 新增 )
jsonp
類型: String
在一個jsonp請求中重寫回調函數的名字。這個值用來替代在"callback=?"這種GET或POST請求中URL參數里的"callback"部分,比如{jsonp:'onJsonPLoad'}會導致將"onJsonPLoad=?"傳給服務器。在jQuery 1.5,,設置jsonp選項為false,阻止了jQuery從加入"?callback"字符串的URL或試圖使用"=?"轉換。在這種情況下,你也應該明確設置jsonpCallback設置。例如, { jsonp: false, jsonpCallback: "callbackName" }
jsonpCallback
類型: String, Function
為jsonp請求指定一個回調函數名。這個值將用來取代jQuery自動生成的隨機函數名。這主要用來讓jQuery生成一個獨特的函數名,這樣管理請求更容易,也能方便地提供回調函數和錯誤處理。你也可以在想讓瀏覽器緩存GET請求的時候,指定這個回調函數名。從jQuery 1.5開始,你也可以使用一個函數作為該參數設置,在這種情況下,該函數的返回值就是jsonpCallback的結果。
mimeType
類型: String
一個mime類型用來覆蓋XHR的 MIME類型。 (1.5 新增 )
password
類型: String
用于響應HTTP訪問認證請求的密碼
processData (默認: true)
類型: Boolean
默認情況下,通過data選項傳遞進來的數據,如果是一個對象(技術上講只要不是字符串),都會處理轉化成一個查詢字符串,以配合默認內容類型 "application/x-www-form-urlencoded"。如果要發送 DOM 樹信息或其它不希望轉換的信息,請設置為 false。
scriptCharset
類型: String
僅適用于當"script"傳輸使用時(例如,跨域的"jsonp"或 dataType選項為"script" 和 "GET"類型)。請求中使用在script標簽上設置charset 屬性。通常只在本地和遠程的內容編碼不同時使用。
statusCode (默認: {})
類型: PlainObject
一組數值的HTTP代碼和函數對象,當響應時調用了相應的代碼。例如,如果響應狀態是404,將觸發以下警報:
$.ajax({
statusCode: {
404: function() {
alert("page not found");
}
}
});
如果請求成功,狀態代碼對應的函數作為回調的成功相同的參數;如果在一個錯誤的結果,他們采取了相同的參數error回調。
(1.5 新增 )
success
類型: Function( Object data, String textStatus, jqXHR jqXHR )
請求成功后的回調函數。這個函數傳遞3個參數:從服務器返回的數據,并根據dataType參數進行處理后的數據,一個描述狀態的字符串;還有 jqXHR(在jQuery 1.4.x前為XMLHttpRequest) 對象 。在jQuery 1.5, 成功設置可以接受一個函數數組。每個函數將被依次調用。這是一個 Ajax Event
timeout
類型: Number
設置請求超時時間(毫秒)。此設置將覆蓋$.ajaxSetup() 里的全局設置。 超時周期開始于$.ajax 訪問成功的那個時間點;如果幾個其他請求都在進步并且瀏覽器有沒有可用的連接,它有可能在被發送前就超時了。在 jQuery 1.4.x 和前面的版本中, 如果請求超時,XMLHttpRequest對象是處于無效狀態;訪問任何對象的成員可能會拋出一個異常。只有在 Firefox 3.0+,script 和 JSONP請求在超時后不能被取消;該腳本將運行即使超時后到達。
traditional
類型: Boolean
如果你想要用傳統的方式來序列化數據,那么就設置為true。請參考工具分類下面的jQuery.param 方法.
type (默認: 'GET')
類型: String
請求方式 ("POST" 或 "GET"), 默認為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
url (默認: 當前頁面地址)
類型: String
發送請求的地址。
username
類型: String
于響應HTTP訪問認證請求的用戶名
xhr (默認: 當可用的ActiveXObject(IE)中,否則為XMLHttpRequest)
類型: Function()
回調創建XMLHttpRequest對象。當可用時默認為ActiveXObject(IE)中,否則為XMLHttpRequest。提供覆蓋你自己的執行的XMLHttpRequest或增強工廠。
xhrFields
類型: PlainObject
一對“文件名-文件值”組成的映射,用于設定原生的 XHR對象。例如,如果需要的話,在進行跨域請求時,你可以用它來設置withCredentials為true。
$.ajax({
url: a_cross_domain_url,
xhrFields: {
withCredentials: true
}
});
在 jQuery 1.5中, withCredentials屬性不會傳遞給原生的XHR從而對于需要使用此屬性的 CORS 請求,則只能忽略這個屬性。。出于這個原因,我們建議您使用jQuery1.5.1+,如果您需要使用它。
讀到這里,這篇“jQuery.ajax使用的方法”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。