jQuery.ajaxPrefilter() 的參數options與originalOptions
- 詳細內容
- 分類:JQuery
- 發佈:2013-09-11, 週三 20:51
- 點擊數:1778
jQuery.ajaxPrefilter():
jQuery.ajaxPrefilter() 是 jQuery中的Ajax前置過濾器,可以用來前置處理關於Ajax的相關設定(option)
其格式為:
1
2
|
jQuery.ajaxPrefilter( [dataTypes ], handler(options, originalOptions, jqXHR) ) //version added: 1.5 |
-
dataTypesType: String一個可選的字串,包含了一個或多個由空白鍵分開的資料型態。
-
handler(options, originalOptions, jqXHR)Type: Function()一個處理函式,用來設定往後的Ajax請求的預設值。
-
傳回值: undefined
handler是個回呼函式,其中的options,originalOptions,單看jQuery的官方文件其實不太能懂他在寫啥。這裡簡單說一下。
options是接下來的Ajax請求會套用的新設定,可以藉由修改此物件來改變一些設定,譬如url等等,而originalOptions是原本Ajax的設定,但這個設定並不包含預設的值,而只是單單該次Ajax呼叫時作的設定值。
用一個例子來把兩個物件都列印出來看看就很清楚了:
<!doctype html> <html lang="en"> <head> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> </head> <body> <script type="text/javascript"> $.ajaxPrefilter(function( options, originalOptions, jqXHR ) { document.writeln("----------------options-----------------------------------"); document.writeln("<br/>"); for ( var a in options) //列印options物件 { document.writeln( a+"=" ); document.writeln(eval("options."+ a)); document.writeln("<br/>"); } document.writeln("-----------------originalOptions---------------------------"); document.writeln("<br/>");//列印originalOprions for ( var a in originalOptions) { document.writeln( a+"=" ); document.writeln(eval("originalOptions."+ a)); document.writeln("<br/>"); } }); $.ajaxSetup({ //新增一些設定,會在包含在ajaxPrefilter的option物件中 myconfigure1: true, myconfigure2: false }); var request=$.ajax({//ajax呼叫的設定包含在ajaxPrefilter的orignalOprion物件中 type: "POST", url: "test.html", dataType: "html" }); </script> </body> </html>
輸出:
----------------options-----------------------------------
url= test.html
type= POST
isLocal= true
global= true
processData= true
async= true
contentType= application/x-www-form-urlencoded; charset=UTF-8
accepts= [object Object]
contents= [object Object]
responseFields= [object Object]
converters= [object Object]
flatOptions= [object Object]
jsonp= callback
jsonpCallback= function() { var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) ); this[ callback ] = true; return callback; }
xhr= function() { return !this.isLocal && createStandardXHR() || createActiveXHR(); }
myconfigure1= true
myconfigure2= false
dataType= html
dataTypes= html
crossDomain= false
-----------------riginalOptions----------------------------
type= POST
url= test.html
dataType= html
按個讚!~支持本站!~