溫馨提示×

溫馨提示×

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

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

jQuery.ajax使用的方法

發(fā)布時(shí)間:2022-03-05 10:52:37 來源:億速云 閱讀:286 作者:iii 欄目:web開發(fā)

本文小編為大家詳細(xì)介紹“jQuery.ajax使用的方法”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“jQuery.ajax使用的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

  jQuery.ajax( url [, settings ] )說明: 執(zhí)行一個(gè)異步的HTTP(Ajax)的請求。

  url

  類型: String

  一個(gè)用來包含發(fā)送請求的URL字符串。

  settings

  類型: PlainObject

  一個(gè)以"{鍵:值}"組成的AJAX 請求設(shè)置。所有選項(xiàng)都是可選的。可以使用$.ajaxSetup()設(shè)置任何默認(rèn)參數(shù)。看jQuery.ajax( settings )下所有設(shè)置的完整列表。

  jQuery.ajax( [settings ] )

  settings

  類型: PlainObject

  一個(gè)以"{鍵:值}"組成的AJAX 請求設(shè)置。所有選項(xiàng)都是可選的??梢允褂?.ajaxSetup()設(shè)置任何默認(rèn)參數(shù)。

  accepts (默認(rèn): 取決于數(shù)據(jù)類型)

  類型: PlainObject

  內(nèi)容類型發(fā)送請求頭(Content-Type),用于通知服務(wù)器該請求需要接收何種類型的返回結(jié)果。如果accepts設(shè)置需要修改,推薦在$.ajaxSetup() 方法中設(shè)置一次。

  async (默認(rèn): true)

  類型: Boolean

  默認(rèn)設(shè)置下,所有請求均為異步請求(也就是說這是默認(rèn)設(shè)置為 true )。如果需要發(fā)送同步請求,請將此選項(xiàng)設(shè)置為 false 。跨域請求和 dataType: "jsonp" 請求不支持同步操作。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。從 jQuery 1.8 開始, jqXHR ($.Deferred)中使用  async: false  已經(jīng)過時(shí)。您必須使用的 success/error/complete 的回調(diào)選項(xiàng)代替相應(yīng)的jqXHR對(duì)象的方法,比如jqXHR.done() 或者過時(shí)的jqXHR.success()

  beforeSend

  類型: Function( jqXHR jqXHR, PlainObject settings )

  請求發(fā)送前的回調(diào)函數(shù),用來修改請求發(fā)送前jqXHR(在jQuery 1.4.x的中,XMLHttpRequest)對(duì)象,此功能用來設(shè)置自定義 HTTP 頭信息,等等。該jqXHR和設(shè)置對(duì)象作為參數(shù)傳遞。這是一個(gè)Ajax事件 。在beforeSend函數(shù)中返回false將取消這個(gè)請求。從jQuery 1.5開始, beforeSend選項(xiàng)將被訪問,不管請求的類型。

  cache (默認(rèn): true, dataType為"script"和"jsonp"時(shí)默認(rèn)為false)

  類型: Boolean

  如果設(shè)置為 false ,瀏覽器將不緩存此頁面。注意: 設(shè)置cache為 false將在 HEAD和GET請求中正常工作。它的工作原理是在GET請求參數(shù)中附加"_={timestamp}"(譯者注:時(shí)間戳)。該參數(shù)不是其他請求所必須的,除了在IE8中,當(dāng)一個(gè)POST請求一個(gè)已經(jīng)用GET請求過的URL。

  complete

  類型: Function( jqXHR jqXHR, String textStatus )

  請求完成后回調(diào)函數(shù) (請求success 和 error之后均調(diào)用)。這個(gè)回調(diào)函數(shù)得到2個(gè)參數(shù): jqXHR (在 jQuery 1.4.x中是 XMLHTTPRequest) 對(duì)象和一個(gè)描述請求狀態(tài)的字符串("success", "notmodified", "error", "timeout", "abort", 或者 "parsererror") 。從jQuery 1.5開始, complete設(shè)置可以接受一個(gè)函數(shù)的數(shù)組。每個(gè)函數(shù)將被依次調(diào)用。這是一個(gè)Ajax事件 。

  contents

  類型: PlainObject

  一個(gè)以"{字符串/正則表達(dá)式}"配對(duì)的對(duì)象,根據(jù)給定的內(nèi)容類型,解析請求的返回結(jié)果。 (1.5新增)

  contentType (默認(rèn): 'application/x-www-form-urlencoded; charset=UTF-8')

  類型: String

  發(fā)送信息至服務(wù)器時(shí)內(nèi)容編碼類型。默認(rèn)值是"application/x-www-form-urlencoded; charset=UTF-8",適合大多數(shù)情況。如果你明確地傳遞了一個(gè)內(nèi)容類型(Content-Type)給 $.ajax(),那么他必定會(huì)發(fā)送給服務(wù)器(即使沒有數(shù)據(jù)要發(fā)送)。數(shù)據(jù)將總是使用UTF-8字符集傳遞給服務(wù)器;你必須在服務(wù)器端進(jìn)行適當(dāng)?shù)慕獯a。

  context

  類型: Object

  這個(gè)對(duì)象用于設(shè)置Ajax相關(guān)回調(diào)函數(shù)的上下文。 默認(rèn)情況下,這個(gè)上下文是一個(gè)ajax請求使用的參數(shù)設(shè)置對(duì)象,($.ajaxSettings合并獨(dú)傲這個(gè)設(shè)置,傳遞給$.ajax)。比如指定一個(gè)DOM元素作為context參數(shù),這樣就設(shè)置了complete回調(diào)函數(shù)的上下文為這個(gè)DOM元素。就像這樣:

  $.ajax({

  url: "test.html",

  context: document.body

  }).done(function() {

  $(this).addClass("done");

  });

  converters (默認(rèn): {"* text": window.String, "text html": true, "text json": jQuery.parseJSON, "text xml": jQuery.parseXML})

  類型: PlainObject

  一個(gè)數(shù)據(jù)類型到數(shù)據(jù)類型轉(zhuǎn)換器的對(duì)象。每個(gè)轉(zhuǎn)換器的值是一個(gè)函數(shù),返回經(jīng)轉(zhuǎn)換后的請求結(jié)果。 ( 1.5新增)

  crossDomain (默認(rèn): 同域請求為false, 跨域請求為true)

  類型: Boolean

  如果你想在同一域中強(qiáng)制跨域請求(如JSONP形式),例如,想服務(wù)器端重定向到另一個(gè)域,那么需要將crossDomain設(shè)置為 true 。 ( 1.5 新增)

  data

  類型: Object, String

  發(fā)送到服務(wù)器的數(shù)據(jù)。將自動(dòng)轉(zhuǎn)換為請求字符串格式。GET 請求中將附加在 URL 后面。查看 processData 選項(xiàng)說明,以禁止此自動(dòng)轉(zhuǎn)換。對(duì)象必須為"{鍵:值}"格式。如果這個(gè)參數(shù)是一個(gè)數(shù)組,jQuery會(huì)按照traditional 參數(shù)的值, 將自動(dòng)轉(zhuǎn)化為一個(gè)同名的多值查詢字符串(查看下面的說明)。注:如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 '&foo=bar1&foo=bar2'。

  dataFilter

  類型: Function( Object data, String type ) => Object

  一個(gè)函數(shù)被用來處理XMLHttpRequest的原始響應(yīng)數(shù)據(jù)。這是一個(gè)預(yù)過濾功能,凈化響應(yīng)。您應(yīng)該返回安全數(shù)據(jù)。提供data和type兩個(gè)參數(shù):data是Ajax返回的原始數(shù)據(jù),type是調(diào)用jQuery.ajax時(shí)提供的dataType參數(shù)。

  dataType (默認(rèn): Intelligent Guess (xml, json, script, or html))

  類型: String

  預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動(dòng)根據(jù) HTTP 包 MIME 信息來智能判斷,比如XML MIME類型就被識(shí)別為XML。在1.4中,JSON就會(huì)生成一個(gè)JavaScript對(duì)象,而script則會(huì)執(zhí)行這個(gè)腳本。隨后服務(wù)器端返回的數(shù)據(jù)會(huì)根據(jù)這個(gè)值解析后,傳遞給回調(diào)函數(shù)??捎弥?

  "xml": 返回 XML 文檔,可用 jQuery 處理。.

  "html": 返回純文本 HTML 信息;包含的script標(biāo)簽會(huì)在插入dom時(shí)執(zhí)行。

  "script": 把響應(yīng)的結(jié)果當(dāng)作 JavaScript 執(zhí)行。并將其當(dāng)作純文本返回。默認(rèn)情況下不會(huì)通過在URL中附加查詢字符串變量 "_=[TIMESTAMP]" 進(jìn)行自動(dòng)緩存結(jié)果,除非設(shè)置了cache參數(shù)為true。Note: 在遠(yuǎn)程請求時(shí)(不在同一個(gè)域下),所有POST請求都將轉(zhuǎn)為GET請求。(因?yàn)閷⑹褂肈OM的script標(biāo)簽來加載)

  "json": 把響應(yīng)的結(jié)果當(dāng)作 JSON 執(zhí)行,并返回一個(gè)JavaScript對(duì)象。在 jQuery 1.4 中,JSON 格式的數(shù)據(jù)以嚴(yán)格的方式解析,如果格式有錯(cuò)誤,jQuery都會(huì)被拒絕并拋出一個(gè)解析錯(cuò)誤的異常。(見json.org的更多信息,正確的JSON格式。)

  "jsonp": 以 JSONP 的方式載入 JSON 數(shù)據(jù)塊。會(huì)自動(dòng)在所請求的URL最后添加 "?callback=?"。默認(rèn)情況下不會(huì)通過在URL中附加查詢字符串變量 "_=[TIMESTAMP]" 進(jìn)行自動(dòng)緩存結(jié)果,除非將 cache參數(shù)設(shè)置為true。

  "text": 返回純文本字符串。

  多個(gè)空格分割的值:從 jQuery 1.5 開始, jQuery可以內(nèi)容類型(Content-Type)頭收到并轉(zhuǎn)換一個(gè)您需要的數(shù)據(jù)類型。例如,如果你想要一個(gè)文本響應(yīng)為XML處理,使用"text xml"數(shù)據(jù)類型。您也可以將一個(gè)JSONP的請求,以文本形式接受,并用jQuery以XML解析: "jsonp text xml"。同樣地可以使用"jsonp xml"簡寫,首先會(huì)嘗試從 jsonp 到 xml 的轉(zhuǎn)換,如果轉(zhuǎn)換失敗,就先將 jsonp 轉(zhuǎn)換成 text, 然后再由 text 轉(zhuǎn)換成 xml。

  error

  類型: Function( jqXHR jqXHR, String textStatus, String errorThrown )

  請求失敗時(shí)調(diào)用此函數(shù)。有以下三個(gè)參數(shù):jqXHR (在 jQuery 1.4.x前為XMLHttpRequest) 對(duì)象、描述發(fā)生錯(cuò)誤類型的一個(gè)字符串 和 捕獲的異常對(duì)象。如果發(fā)生了錯(cuò)誤,錯(cuò)誤信息(第二個(gè)參數(shù))除了得到null之外,還可能是"timeout", "error", "abort" ,和 "parsererror"。 當(dāng)一個(gè)HTTP錯(cuò)誤發(fā)生時(shí),errorThrown 接收HTTP狀態(tài)的文本部分,比如: "Not Found"(沒有找到) 或者 "Internal Server Error."(服務(wù)器內(nèi)部錯(cuò)誤)。 從jQuery 1.5開始, 在error設(shè)置可以接受函數(shù)組成的數(shù)組。每個(gè)函數(shù)將被依次調(diào)用。 注意:此處理程序在跨域腳本和JSONP形式的請求時(shí)不被調(diào)用。這是一個(gè) Ajax Event。

  global (默認(rèn): true)

  類型: Boolean

  無論怎么樣這個(gè)請求將觸發(fā)全局AJAX事件處理程序。默認(rèn)是true 。設(shè)置為 false 將不會(huì)觸發(fā)全局 AJAX 事件,如 ajaxStart 或者 ajaxStop。這可以用來控制各種 Ajax Event.

  headers (默認(rèn): {})

  類型: PlainObject

  一個(gè)額外的"{鍵:值}"對(duì)映射到請求一起發(fā)送。此設(shè)置會(huì)在beforeSend 函數(shù)調(diào)用之前被設(shè)置 ;因此,請求頭中的設(shè)置值,會(huì)被beforeSend 函數(shù)內(nèi)的設(shè)置覆蓋 。 (1.5 新增 )

  ifModified (默認(rèn): false)

  類型: Boolean

  只有上次請求響應(yīng)改變時(shí),才允許請求成功。使用 HTTP 包 Last-Modified 頭信息判斷。默認(rèn)值是false,忽略HTTP頭信息。在jQuery 1.4中,他也會(huì)檢查服務(wù)器指定的'etag'來確定數(shù)據(jù)沒有被修改過。

  isLocal (默認(rèn): 取決于當(dāng)前的位置協(xié)議)

  類型: Boolean

  允許當(dāng)前環(huán)境被認(rèn)定為“本地”,(如文件系統(tǒng)),即使jQuery默認(rèn)情況下不會(huì)這么做。以下協(xié)議目前公認(rèn)為本地:file, *-extension, and widget。如果isLocal設(shè)置需要修改,建議在$.ajaxSetup()方法中這樣做一次。 (1.5 新增 )

  jsonp

  類型: String

  在一個(gè)jsonp請求中重寫回調(diào)函數(shù)的名字。這個(gè)值用來替代在"callback=?"這種GET或POST請求中URL參數(shù)里的"callback"部分,比如{jsonp:'onJsonPLoad'}會(huì)導(dǎo)致將"onJsonPLoad=?"傳給服務(wù)器。在jQuery 1.5,,設(shè)置jsonp選項(xiàng)為false,阻止了jQuery從加入"?callback"字符串的URL或試圖使用"=?"轉(zhuǎn)換。在這種情況下,你也應(yīng)該明確設(shè)置jsonpCallback設(shè)置。例如, { jsonp: false, jsonpCallback: "callbackName" }

  jsonpCallback

  類型: String, Function

  為jsonp請求指定一個(gè)回調(diào)函數(shù)名。這個(gè)值將用來取代jQuery自動(dòng)生成的隨機(jī)函數(shù)名。這主要用來讓jQuery生成一個(gè)獨(dú)特的函數(shù)名,這樣管理請求更容易,也能方便地提供回調(diào)函數(shù)和錯(cuò)誤處理。你也可以在想讓瀏覽器緩存GET請求的時(shí)候,指定這個(gè)回調(diào)函數(shù)名。從jQuery 1.5開始,你也可以使用一個(gè)函數(shù)作為該參數(shù)設(shè)置,在這種情況下,該函數(shù)的返回值就是jsonpCallback的結(jié)果。

  mimeType

  類型: String

  一個(gè)mime類型用來覆蓋XHR的 MIME類型。 (1.5 新增 )

  password

  類型: String

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

  processData (默認(rèn): true)

  類型: Boolean

  默認(rèn)情況下,通過data選項(xiàng)傳遞進(jìn)來的數(shù)據(jù),如果是一個(gè)對(duì)象(技術(shù)上講只要不是字符串),都會(huì)處理轉(zhuǎn)化成一個(gè)查詢字符串,以配合默認(rèn)內(nèi)容類型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請?jiān)O(shè)置為 false。

  scriptCharset

  類型: String

  僅適用于當(dāng)"script"傳輸使用時(shí)(例如,跨域的"jsonp"或 dataType選項(xiàng)為"script" 和 "GET"類型)。請求中使用在script標(biāo)簽上設(shè)置charset 屬性。通常只在本地和遠(yuǎn)程的內(nèi)容編碼不同時(shí)使用。

  statusCode (默認(rèn): {})

  類型: PlainObject

  一組數(shù)值的HTTP代碼和函數(shù)對(duì)象,當(dāng)響應(yīng)時(shí)調(diào)用了相應(yīng)的代碼。例如,如果響應(yīng)狀態(tài)是404,將觸發(fā)以下警報(bào):

  $.ajax({

  statusCode: {

  404: function() {

  alert("page not found");

  }

  }

  });

  如果請求成功,狀態(tài)代碼對(duì)應(yīng)的函數(shù)作為回調(diào)的成功相同的參數(shù);如果在一個(gè)錯(cuò)誤的結(jié)果,他們采取了相同的參數(shù)error回調(diào)。

  (1.5 新增 )

  success

  類型: Function( Object data, String textStatus, jqXHR jqXHR )

  請求成功后的回調(diào)函數(shù)。這個(gè)函數(shù)傳遞3個(gè)參數(shù):從服務(wù)器返回的數(shù)據(jù),并根據(jù)dataType參數(shù)進(jìn)行處理后的數(shù)據(jù),一個(gè)描述狀態(tài)的字符串;還有 jqXHR(在jQuery 1.4.x前為XMLHttpRequest) 對(duì)象 。在jQuery 1.5, 成功設(shè)置可以接受一個(gè)函數(shù)數(shù)組。每個(gè)函數(shù)將被依次調(diào)用。這是一個(gè) Ajax Event

  timeout

  類型: Number

  設(shè)置請求超時(shí)時(shí)間(毫秒)。此設(shè)置將覆蓋$.ajaxSetup() 里的全局設(shè)置。 超時(shí)周期開始于$.ajax 訪問成功的那個(gè)時(shí)間點(diǎn);如果幾個(gè)其他請求都在進(jìn)步并且瀏覽器有沒有可用的連接,它有可能在被發(fā)送前就超時(shí)了。在 jQuery 1.4.x 和前面的版本中, 如果請求超時(shí),XMLHttpRequest對(duì)象是處于無效狀態(tài);訪問任何對(duì)象的成員可能會(huì)拋出一個(gè)異常。只有在 Firefox 3.0+,script 和 JSONP請求在超時(shí)后不能被取消;該腳本將運(yùn)行即使超時(shí)后到達(dá)。

  traditional

  類型: Boolean

  如果你想要用傳統(tǒng)的方式來序列化數(shù)據(jù),那么就設(shè)置為true。請參考工具分類下面的jQuery.param 方法.

  type (默認(rèn): 'GET')

  類型: String

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

  url (默認(rèn): 當(dāng)前頁面地址)

  類型: String

  發(fā)送請求的地址。

  username

  類型: String

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

  xhr (默認(rèn): 當(dāng)可用的ActiveXObject(IE)中,否則為XMLHttpRequest)

  類型: Function()

  回調(diào)創(chuàng)建XMLHttpRequest對(duì)象。當(dāng)可用時(shí)默認(rèn)為ActiveXObject(IE)中,否則為XMLHttpRequest。提供覆蓋你自己的執(zhí)行的XMLHttpRequest或增強(qiáng)工廠。

  xhrFields

  類型: PlainObject

  一對(duì)“文件名-文件值”組成的映射,用于設(shè)定原生的 XHR對(duì)象。例如,如果需要的話,在進(jìn)行跨域請求時(shí),你可以用它來設(shè)置withCredentials為true。

  $.ajax({

  url: a_cross_domain_url,

  xhrFields: {

  withCredentials: true

  }

  });

  在 jQuery 1.5中, withCredentials屬性不會(huì)傳遞給原生的XHR從而對(duì)于需要使用此屬性的 CORS 請求,則只能忽略這個(gè)屬性。。出于這個(gè)原因,我們建議您使用jQuery1.5.1+,如果您需要使用它。

讀到這里,這篇“jQuery.ajax使用的方法”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

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

AI