您好,登錄后才能下訂單哦!
這篇文章主要講解了“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)注!
免責(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)容。