您好,登錄后才能下訂單哦!
這篇文章主要講解了“jQuery.ajaxPrefilter實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“jQuery.ajaxPrefilter實例分析”吧!
jQuery.ajaxPrefilter( [dataTypes ], handler(options, originalOptions, jqXHR) )
描述: 在每個請求之前被發送和$.ajax()處理它們前處理,設置自定義Ajax選項或修改現有選項。
dataTypes
類型: String
一個可選的字符串,其中包含一個或多個空格分隔的數據類型
handler(options, originalOptions, jqXHR)
類型: Function()
一個處理程序程序,用于設置未來的Ajax請求的默認值。
注冊一個典型使用$.ajaxPrefilter()的預過濾器,看起來像這樣:
$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
// Modify options, control originalOptions, store jqXHR, etc
});
以下的情況下:
options 是請求的選項
originalOptions 值作為提供給Ajax方法未經修改的選項,因此,沒有ajaxSettings設置中的默認值
jqXHR 是請求的jqXHR對象
當自定義選項,需要提前處理,預過濾器(Prefilters)是一個完美的選擇。給定下面的代碼, 例如,如果自定義abortOnRetry選項被設置為true,那么調用$.ajax()會自動中止請求相同的URL:
var currentRequests = {};
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
if ( options.abortOnRetry ) {
if ( currentRequests[ options.url ] ) {
currentRequests[ options.url ].abort();
}
currentRequests[ options.url ] = jqXHR;
}
});
預過濾器(Prefilters)也可以被用來修改已經存在的選項。例如,下面的代理服務器跨域請求http://mydomain.net/proxy/:
$.ajaxPrefilter( function( options ) {
if ( options.crossDomain ) {
options.url = "http://mydomain.net/proxy/" + encodeURIComponent( options.url );
options.crossDomain = false;
}
});
如果提供可選的dataTypes參數,那么預濾器(prefilter)將只會對滿足指定 dataTypes 的請求有效。例如, 以下僅適用于JSON和 script 請求給定的預過濾器:
$.ajaxPrefilter( "json script", function( options, originalOptions, jqXHR ) {
// Modify options, control originalOptions, store jqXHR, etc
});
$.ajaxPrefilter()方法也可以將請求重定向到另一個數據類型,并且返回該數據類型。 例如,如果 URL 中含有在 isActuallyScript() 函數中設定的指定屬性,那么設置成一個“script”的請求:
$.ajaxPrefilter(function( options ) {
if ( isActuallyScript( options.url ) ) {
return "script";
}
});
這將確保請求被認為是“script”類型的,而且也保證了所有對 script 數據類型有效的預前過濾器,也將被應用到它。
感謝各位的閱讀,以上就是“jQuery.ajaxPrefilter實例分析”的內容了,經過本文的學習后,相信大家對jQuery.ajaxPrefilter實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。