jquery ajax:新请求在上一次中止后不启动

时间:2015-08-23 11:25:32

标签: javascript jquery ajax abort

在我的应用程序中,我想在创建一个新选项之前取消之前由select选项更改的ajax调用。

它不起作用:先前的ajax调用中止,新的调用未启动。 如果之前的呼叫没有中止,则可以正常工作。

我的代码:

    $('.import-control').on('change', function(){
        if (ajax && ajax.readyState !=4 && typeof ajax==='object') {
            ajax.abort();
        }


        ajax = getPlanningTasks(myroute);

    });

    function getPlanningTasks(route) {
        return $.ajax({
            url:   route,
            type:  'GET',
            cache: false,
            beforeSend: function () {
                $('#json_popup_loader').show();
                $('#tasks-container').html('');
            }
        }).done(function(data){
            $('#tasks-container').html(data);
            $('[name=appbundle_foodanalytics_task_collection] .collection table > thead > tr').show();
        }).always(function(){
            $('#json_popup_loader').hide();
        }).fail(function(jqXHR, textStatus, errorThrown){
            if (jqXHR.status === 0 || jqXHR.readyState === 0) {
                return;
            }
            $('#tasks-container').html("error");
        });
    }

0 个答案:

没有答案