jQuery.ajaxPrefilter() 함수는 Ajax 매개변수 옵션 전처리를 위한 콜백 함수를 지정하는 데 사용됩니다.
jQuery.ajax() 함수에서 모든 매개변수 옵션을 처리하기 전에 이 함수에서 설정한 콜백 함수를 사용하여 매개변수 옵션을 미리 변경할 수 있습니다.
또한 데이터 유형(dataType)을 지정하여 지정된 데이터 유형의 매개변수 옵션만 전처리할 수도 있습니다.
이 함수는 여러 번 호출되어 다양한 데이터 유형의 AJAX 요청에 대해 다양한 콜백 함수를 지정할 수 있습니다.
이 함수는 전역 jQuery 개체에 속합니다.
Syntax
jQuery 1.5에는 이 정적 함수가 추가되었습니다.
jQuery.ajaxPrefilter([ dataType ,] handler )
parameters
dataType option/Stringtype
A string은 공백으로 구분된 하나 이상의 데이터 유형으로 구성됩니다. 이 매개변수를 지정하지 않으면 모든 데이터 유형이 표시됩니다. 사용 가능한 데이터 유형은 "xml", "html", "text", "json", "jsonp", "script"입니다. 문자열은 이들 사이의 조합입니다(여러 유형은 공백으로 구분됨). 예: "xml", "text html", "script json jsonp".
handlerFunction 유형
매개변수 옵션 전처리에 사용되는 콜백 함수입니다. 여기에는 다음 3개의 매개변수가 있습니다.
options: (Object ) 현재 AJAX 요청의 모든 매개변수 옵션입니다.
originalOptions: (객체) $.ajax() 메소드에 전달된 수정되지 않은 매개변수 옵션입니다.
jqXHR: 현재 요청의 jqXHR 개체(jQuery로 캡슐화된 XMLHttpRequest 개체).
반환 값
jQuery.ajaxPrefilter() 함수에 반환 값이 없거나 반환 값이 정의되지 않았습니다.
예제 및 설명
다음은 jQuery.ajaxPrefilter() 함수의 구체적인 사용법을 보여주기 위해 jQuery.ajaxPrefilter() 함수와 관련된 jQuery 샘플 코드입니다.
//设置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() 함수는 지정된 데이터만 전처리할 수도 있습니다. (dataType) 유형의 AJAX 요청에 대한 옵션입니다. jQuery 코드는 다음과 같습니다:
//设置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() 함수 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!