>  기사  >  웹 프론트엔드  >  jQuery.ajaxPrefilter() 함수 사용법에 대한 자세한 설명

jQuery.ajaxPrefilter() 함수 사용법에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-07-08 11:37:542321검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.