如何在ajaxsetup的send方法之前中止父ajax调用

时间:2017-07-19 07:11:28

标签: javascript jquery ajax

我正在使用多个ajax调用。但是使用AjaxSetUp来了解是否允许调用,如果没有,则尝试在beforeSend方法中中止此操作。

这里是ajax调用

                      $.ajax({
                            type : "POST",
                            url : "/apps/doAction",
                            xhrFields : "checkIfAllowed",
                            success : function(response,xhr) {
                            if(response){
                                return false;
                            }
                            },
                            error : function(xhr,ajaxOptions,thrownError) {
                            }
                        });

这里是AjaxSetUp

$.ajaxSetup({
            beforeSend: function(event, xhr, settings) {
                event.xhrToAbort=xhr;
                if(xhr.xhrFields == "checkIfAllowed"){
                     $.ajax({
                            type : "POST",
                            url : contextpath+ "/apps/auth/isAllowed",
                            success : function(response,xhr) {
                            if(response){
                             //  ABORT PARENT CALL ("URL: /apps/doAction") unable to abort parent call..
                            }
                            },
                            error : function(xhr,ajaxOptions,thrownError) {
                            }
                        });
                }
            },
            complete: function(event, xhr, settings) {
                $('.trans-overlay').hide();
             }
        });

1 个答案:

答案 0 :(得分:0)

event.xhrToAbort=xhr;替换为event.xhrToAbort=event; 以及你想要中止使用的地方,如event.xhrToAbort.abort();