常见的beforeSend in Ajax调用,如果条件不满足则中止

常见的beforeSend in Ajax调用,如果条件不满足则中止,ajax,Ajax,我试图为所有Ajax调用编写一个通用功能,如下所示。 当我像下面那样单独编写它时,中止不起作用,如果我在下面相同的ajax中添加beforesend,它就会起作用,这是有注释的 $(document).ready(function () { $.ajax({ beforeSend: function (jqXHR, settings) {

我试图为所有Ajax调用编写一个通用功能,如下所示。 当我像下面那样单独编写它时,中止不起作用,如果我在下面相同的ajax中添加beforesend,它就会起作用,这是有注释的

 $(document).ready(function () {

                        $.ajax({
                            beforeSend: function (jqXHR, settings) {
                                check = TestCallMethod();
                                if (check.responseText != "true") {
                                    alert("Call Failed");
                                    jqXHR.abort(event);
                                }
                            }
                        });

            $.ajax({
//                beforeSend: function (jqXHR, settings) {
//                    debugger;
//                    check = TestCallMethod();
//                    if (check.responseText != "true") {
//                        alert("Call Failed");
//                        jqXHR.abort();
//                    }
//                },
                cache: false,
                url: '@Url.Action("TestCall2", "Home")',
                success: function (data) {
                    alert(data);
                },
                error: function (request, status, error) {
                    alert(request.responseText);
                }
            });
        });

        function TestCallMethod()
        {
            return  $.ajax({
                url: '@Url.Action("TestCall", "Home")',
                async: false,
                cache: false,
                success: function (data) {
                    return data;
                },
                error: function (request, status, error) {
                    alert(request.responseText);
                    return false;
                }

            });
        } 

如何在结束之前实现通用ajax的中止?

您可以将通用设置应用于ajax上的全局设置。我希望这会有帮助

$.ajaxSetup({
    global: true,
    beforeSend: function (jqXHR, settings) {
        check = TestCallMethod();
            if (check.responseText != "true") {
                alert("Call Failed");
                jqXHR.abort(event);
            }
    }
});