溫馨提示×

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

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

jqXHR對(duì)象公開的屬性和方法有哪些

發(fā)布時(shí)間:2022-03-17 16:31:47 來(lái)源:億速云 閱讀:255 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“jqXHR對(duì)象公開的屬性和方法有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“jqXHR對(duì)象公開的屬性和方法有哪些”吧!

  從 jQuery 1.5 開始,$.ajax()返回的jqXHR對(duì)象 實(shí)現(xiàn)了 Promise 接口, 使它擁有了 Promise 的所有屬性,方法和行為。(見Deferred object獲取更多信息)。為了讓回調(diào)函數(shù)的名字統(tǒng)一,便于在$.ajax()中使用。jqXHR也提供.error() .success()和.complete()方法。這些方法都帶有一個(gè)參數(shù),該參數(shù)是一個(gè)函數(shù),此函數(shù)在 $.ajax()請(qǐng)求結(jié)束時(shí)被調(diào)用,并且這個(gè)函數(shù)接收的參數(shù),與調(diào)用 $.ajax()函數(shù)時(shí)的參數(shù)是一致。這將允許你在一次請(qǐng)求時(shí),對(duì)多個(gè)回調(diào)函數(shù)進(jìn)行賦值,甚至允許你在請(qǐng)求已經(jīng)完成后,對(duì)回調(diào)函數(shù)進(jìn)行賦值(如果該請(qǐng)求已經(jīng)完成,則回調(diào)函數(shù)會(huì)被立刻調(diào)用)。

  jqXHR.done(function(data, textStatus, jqXHR) {});

  一個(gè)可供選擇的 success 回調(diào)選項(xiàng)的構(gòu)造函數(shù),.done()方法取代了的過(guò)時(shí)的jqXHR.success()方法。請(qǐng)參閱deferred.done()的實(shí)現(xiàn)細(xì)節(jié)。

  jqXHR.fail(function(jqXHR, textStatus, errorThrown) {});

  一種可供選擇的 error 回調(diào)選項(xiàng)的構(gòu)造函數(shù),.fail()方法取代了的過(guò)時(shí)的.error()方法。請(qǐng)參閱deferred.fail()的實(shí)現(xiàn)細(xì)節(jié)。

  jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { });

  一種可供選擇的 complete 回調(diào)選項(xiàng)的構(gòu)造函數(shù),.always()方法取代了的過(guò)時(shí)的.complete()方法。

  在響應(yīng)一個(gè)成功的請(qǐng)求后,該函數(shù)的參數(shù)和.done()的參數(shù)是相同的:data, textStatus, 和 jqXHR 對(duì)象.對(duì)于失敗的請(qǐng)求,參數(shù)和.fail()的參數(shù)是相同的:jqXHR 對(duì)象, textStatus, 和 errorThrown。請(qǐng)參閱deferred.always()的實(shí)現(xiàn)細(xì)節(jié)。

  jqXHR.then(function(data, textStatus, jqXHR) {}, function(jqXHR, textStatus, errorThrown) {});

  包含了 .done() 和 .fail()方法的功能,(從 jQuery 1.8 開始)允許底層被操縱。請(qǐng)參閱deferred.then()的實(shí)現(xiàn)細(xì)節(jié)。

  推薦使用的注意事項(xiàng):  jqXHR.success(), jqXHR.error(), 和 jqXHR.complete()回調(diào)從 jQuery 1.8開始 被棄用。他們將最終被取消,您的代碼應(yīng)做好準(zhǔn)備,使用jqXHR.done(), jqXHR.fail(), 和 jqXHR.always() 代替。

  // Assign handlers immediately after making the request,

  // and remember the jqxhr object for this request

  var jqxhr = $.ajax( "example.php" )

  .done(function() { alert("success"); })

  .fail(function() { alert("error"); })

  .always(function() { alert("complete"); });

  // perform other work here ...

  // Set another completion function for the request above

  jqxhr.always(function() { alert("second complete"); });

  this在所有的回調(diào)中的引用,是這個(gè)對(duì)象在傳遞給$.ajax的設(shè)置中上下文;如果沒有指定context(上下文),this 引用的是Ajax設(shè)置的本身。

  為了向后兼容XMLHttpRequest ,一jqXHR對(duì)象將公開下列屬性和方法:

  readyState

  status

  statusText

  responseXML and/or responseText 當(dāng)?shù)讓拥恼?qǐng)求分別作出XML和/或文本響應(yīng)

  setRequestHeader(name, value) 從標(biāo)準(zhǔn)出發(fā),通過(guò)替換舊的值為新的值,而不是替換的新值到舊值

  getAllResponseHeaders()

  getResponseHeader()

  abort()

  假如沒有onreadystatechange屬性,因?yàn)椴煌臓顟B(tài)可以分別在 success , error , complete和statusCode 方法中進(jìn)行處理。

到此,相信大家對(duì)“jqXHR對(duì)象公開的屬性和方法有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

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

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

AI