繁体   English   中英

如何创建动态ajax函数?

[英]How to create dynamic ajax function?

我正在使用许多 Ajax 请求,例如:

$.ajax({
        url: 'file.php',
        type: 'POST',
        async: true,
        data: {'data' : data},
        success: function( data){
           //Do Something.
        }
});

所以我想知道是否可以创建一个动态函数并将一些参数传递给该函数,例如(文件、类型、数据、successFunction)。

然后每当我想发出 Ajax 请求时,我都会调用该函数并传递这些参数。

就像是:

function dynamicAjax(fileName , reqType , dataObj , succFunction){
    $.ajax({
        url: fileName,
        type: reqType,
        async: true,
        data: dataObj,
        success: function( data){
           //Run The Passed Function (succFunction).
        }
    });
}

然后我执行那个函数:

dynamicAjax
('file.php' , 'POST' , {'data1': data1, 'data2': data2} , function(){
        //Do Something.
    }
);

那可能吗?

jQuery 解决了这个问题,您不是第一个想到这个主意的人。

检查 jQuery 中的$.get$.post方法

$.post( "test.php", { param: "value" }, ( data )=>{/*function*/}, "json");

$.get( "test.php", ( data )=>{/*function*/}, "json");

你在那里 99%。 只需像这样执行回调函数......

function dynamicAjax(fileName , reqType , dataObj , succFunction){
    $.ajax({
        url: fileName,
        type: reqType,
        async: true,
        data: dataObj,
        success: succFunction  // executes succFunction(data)
    });
}

我创建了一个动态 ajax 函数。 请检查一下。

function ajax(url, method = 'POST', data, callback)
        {
            $.ajax({
                url: url,
                method: method,
                data: data,        
                headers: {
                    "Accept": "application/json",
                    "Content-Type": "application/x-www-form-urlencoded;",
                },
                beforeSend: function ()
                {

                },
                error: function (response)
                {
                    switch (true) {
                        case typeof response.responseText !== 'undefined':
                            console.log(response.responseText);
                            break;
                        case response.statusText !== 'abort' && e.status === 0:
                            alert('Please check your internet connection');
                            break;
                        case response.statusText === 'abort':
                            break;
                        default:
                            console.error(response);
                    }
                },
                complete: function (response)
                {

                        callback(response);

                }
            }
            );
        }

要调用此函数,请使用此代码,例如

ajax('url here', 'GET', {id: id}, function(response){
  alert(response);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM