jQuery.ajaxPrefilter()函數用來指定預先處理Ajax參數選項的回呼函數。
在所有參數選項都被jQuery.ajax()函數處理之前,你可以使用該函數設定的回呼函數來預先更改任何參數選項。
你也可以指定資料型別(dataType),因此只預先處理指定資料型別的參數選項。
此函數可以呼叫多次,以便於為不同資料型別的AJAX請求指定不同的回呼函數。
該函數屬於全域jQuery物件。
語法
jQuery 1.5 新增該靜態函數。
jQuery.ajaxPrefilter( [ dataType ,] handler )
參數
dataType可選/String類型
#一個或多以空格隔開的資料型別所組成的字串。如果未指定該參數,則表示所有資料類型。可用的資料類型為"xml"、 "html"、 "text"、 "json"、 "jsonp"、 "script"。字串為它們之間的任意組合(多種類型以空格隔開),例如:"xml"、 "text html"、 "script json jsonp"。
handlerFunction類型
用於預處理參數選項的回呼函數。它有以下3個參數:
options:(Object物件)目前AJAX請求的所有參數選項。
originalOptions:(Object物件)傳遞給$.ajax()方法的未經修改的參數選項。
jqXHR:目前請求的jqXHR物件(經過jQuery封裝的XMLHttpRequest物件)。
傳回值
jQuery.ajaxPrefilter()函數沒有傳回值,或說其傳回值為undefined。
範例&說明
以下是與jQuery.ajaxPrefilter()函數相關的jQuery範例程式碼,以示範jQuery.ajaxPrefilter()函數的具體用法:
//设置AJAX的全局默认选项 $.ajaxSetup( { url: "/index.html" , // 默认URL aysnc: false , // 默认同步加载 type: "POST" , // 默认使用POST方式 headers: { // 默认添加请求头 "Author": "CodePlayer" , "Powered-By": "CodePlayer" } , error: function(jqXHR, textStatus, errorMsg){ // 出错时默认的处理函数 // 提示形如:发送AJAX请求到"/index.html"时出错[404]:Not Found alert( '发送AJAX请求到"' + this.url + '"时出错[' + jqXHR.status + ']:' + errorMsg ); } } ); // 指定预处理参数选项的函数 $.ajaxPrefilter( function(options, originalOptions, jqXHR){ // options对象 包括accepts、crossDomain、contentType、url、async、type、headers、error、dataType等许多参数选项 // originalOptions对象 就是你为$.ajax()方法传递的参数对象,也就是 { url: "/index.php" } // jqXHR对象 就是经过jQuery封装的XMLHttpRequest对象(保留了其本身的属性和方法) options.type = "GET"; // 将请求方式改为GET options.headers = { }; // 清空自定义的请求头 }); // 执行AJAX请求 $.ajax( { url: "/index.php" } );
jQuery.ajaxPrefilter()函數的具體用法:
//设置AJAX的全局默认选项 $.ajaxSetup( { url: "/index.html" , // 默认URL aysnc: false , // 默认同步加载 type: "POST" , // 默认使用POST方式 headers: { // 默认添加请求头 "Author": "CodePlayer" , "Powered-By": "CodePlayer" } , error: function(jqXHR, textStatus, errorMsg){ // 出错时默认的处理函数 // 提示形如:发送AJAX请求到"/index.html"时出错[404]:Not Found alert( '发送AJAX请求到"' + this.url + '"时出错[' + jqXHR.status + ']:' + errorMsg ); } } ); // 指定预处理参数选项的函数,只预处理dataType为json或html类型的AJAX请求 $.ajaxPrefilter( "json html", function(options, originalOptions, jqXHR){ // options对象 包括accepts、crossDomain、contentType、url、async、type、headers、error、dataType等许多参数选项 // originalOptions对象 就是你为$.ajax()方法传递的参数对象,也就是 { url: "/index.php" } // jqXHR对象 就是经过jQuery封装的XMLHttpRequest对象(保留了其本身的属性和方法) if( options.data == null && options.type == "POST"){ options.type = "GET"; // 将请求方式改为GET options.headers = { }; // 清空自定义的请求头 } }); // 执行AJAX请求 $.ajax( { url: "/index.php" } ); // 执行AJAX请求(该请求会被预处理) $.ajax( { url: "action.php?type=json", dataType: "json" } );###jQuery .ajaxPrefilter()函數也可以只預處理指定資料型別(dataType)的AJAX請求的參數選項。 jQuery程式碼如下所示:###rrreee
以上是jQuery.ajaxPrefilter() 函數使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!