如果条件不满足,则在Ajax调用和中止中发送

时间:2013-08-13 06:49:20

标签: ajax

我正在尝试为所有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 beforsend的中止?

1 个答案:

答案 0 :(得分:1)

您可以在Ajax上将常用设置应用于全局。我希望它会有所帮助。

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