如何在另一个函数中调用Ajax函数的回调

How call a callback of an Ajax function in another function

本文关键字:函数 Ajax 回调 调用 另一个      更新时间:2023-09-26

我有一个Ajax函数,它是从一个web服务加载数据。它看起来像这样:

 $.ajax({
    type: 'POST',
    url: back + this.path_Uri,
    data: {msg:this.msg},
    dataType: "json",
    success: function (data, statut) {
                        // traitement to not execute here
        window.reloadFreelancersMission= data;
        var number = reloadFreelancersMission.pagination[0].pagenbr;
        window.pagination.ReloadPager(number);
        /////////////////////////////////////////////////
    },
    error: function (data) {
        console.log(data);
    }
});

我需要在另一个文件中的另一个函数中对这个web服务的响应结果进行一些处理。

我的文件包含一个在ajax函数中发送数据的函数。它看起来像这样

sendFiltres: function () {
    $("body").on('change', '.filtres' , function () {
        var choix_filtres = $("#fitre_recherche");
        var msgJson = JSON.stringify(serializeObject($("#fitre_recherche")));
        window.sendData.start(choix_filtres,msgJson);
    })
},

所以我需要在这里以这种方式使用函数的回调:

request.done(function( msg ) {
    console.log( msg );
}); 

和我的治疗相结合,得到这个为:

request.done(function( msg ) {
    window.reloadFreelancersMission= data;
    var number = reloadFreelancersMission.pagination[0].pagenbr;
    window.pagination.ReloadPager(number);
}); 

但是我似乎不能在这个文件中调用这个回调函数。我只允许在ajax函数的同一文件中使用它,这正是我的问题。

在我的例子中,我通过在jQuery ajaxSuccess的回调函数中恢复服务的响应来解决这个问题

$(document).ajaxSuccess(function (event, xhr, settings) {
    if (settings.url === window.find_mission.route.getmission || settings.url === window.find_freelance.route.getfreelance) {
        xhr = xhr.responseJSON;
        var pagenumber = xhr.pagination[0].pagenbr;
        window.pagination.ReloadPager(pagenumber);
     }
 });

,我使用xhr变量来获取我的数据。