溫馨提示×

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

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

jQuery.ajaxPrefilter實(shí)例分析

發(fā)布時(shí)間:2022-03-05 10:41:11 來(lái)源:億速云 閱讀:154 作者:iii 欄目:web開(kāi)發(fā)

這篇文章主要講解了“jQuery.ajaxPrefilter實(shí)例分析”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“jQuery.ajaxPrefilter實(shí)例分析”吧!

  jQuery.ajaxPrefilter( [dataTypes ], handler(options, originalOptions, jqXHR) )

  描述: 在每個(gè)請(qǐng)求之前被發(fā)送和$.ajax()處理它們前處理,設(shè)置自定義Ajax選項(xiàng)或修改現(xiàn)有選項(xiàng)。

  dataTypes

  類(lèi)型: String

  一個(gè)可選的字符串,其中包含一個(gè)或多個(gè)空格分隔的數(shù)據(jù)類(lèi)型

  handler(options, originalOptions, jqXHR)

  類(lèi)型: Function()

  一個(gè)處理程序程序,用于設(shè)置未來(lái)的Ajax請(qǐng)求的默認(rèn)值。

  注冊(cè)一個(gè)典型使用$.ajaxPrefilter()的預(yù)過(guò)濾器,看起來(lái)像這樣:

  $.ajaxPrefilter( function( options, originalOptions, jqXHR ) {

  // Modify options, control originalOptions, store jqXHR, etc

  });

  以下的情況下:

  options 是請(qǐng)求的選項(xiàng)

  originalOptions 值作為提供給Ajax方法未經(jīng)修改的選項(xiàng),因此,沒(méi)有ajaxSettings設(shè)置中的默認(rèn)值

  jqXHR 是請(qǐng)求的jqXHR對(duì)象

  當(dāng)自定義選項(xiàng),需要提前處理,預(yù)過(guò)濾器(Prefilters)是一個(gè)完美的選擇。給定下面的代碼, 例如,如果自定義abortOnRetry選項(xiàng)被設(shè)置為true,那么調(diào)用$.ajax()會(huì)自動(dòng)中止請(qǐng)求相同的URL:

  var currentRequests = {};

  $.ajaxPrefilter(function( options, originalOptions, jqXHR ) {

  if ( options.abortOnRetry ) {

  if ( currentRequests[ options.url ] ) {

  currentRequests[ options.url ].abort();

  }

  currentRequests[ options.url ] = jqXHR;

  }

  });

  預(yù)過(guò)濾器(Prefilters)也可以被用來(lái)修改已經(jīng)存在的選項(xiàng)。例如,下面的代理服務(wù)器跨域請(qǐng)求http://mydomain.net/proxy/:

  $.ajaxPrefilter( function( options ) {

  if ( options.crossDomain ) {

  options.url = "http://mydomain.net/proxy/" + encodeURIComponent( options.url );

  options.crossDomain = false;

  }

  });

  如果提供可選的dataTypes參數(shù),那么預(yù)濾器(prefilter)將只會(huì)對(duì)滿足指定 dataTypes 的請(qǐng)求有效。例如, 以下僅適用于JSON和 script 請(qǐng)求給定的預(yù)過(guò)濾器:

  $.ajaxPrefilter( "json script", function( options, originalOptions, jqXHR ) {

  // Modify options, control originalOptions, store jqXHR, etc

  });

  $.ajaxPrefilter()方法也可以將請(qǐng)求重定向到另一個(gè)數(shù)據(jù)類(lèi)型,并且返回該數(shù)據(jù)類(lèi)型。  例如,如果 URL 中含有在 isActuallyScript() 函數(shù)中設(shè)定的指定屬性,那么設(shè)置成一個(gè)“script”的請(qǐng)求:

  $.ajaxPrefilter(function( options ) {

  if ( isActuallyScript( options.url ) ) {

  return "script";

  }

  });

  這將確保請(qǐng)求被認(rèn)為是“script”類(lèi)型的,而且也保證了所有對(duì) script 數(shù)據(jù)類(lèi)型有效的預(yù)前過(guò)濾器,也將被應(yīng)用到它。

感謝各位的閱讀,以上就是“jQuery.ajaxPrefilter實(shí)例分析”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)jQuery.ajaxPrefilter實(shí)例分析這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向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