2

我正在尝试为所有 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如何实现abort?

4

1 回答 1

1

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

$.ajaxSetup({
    global: true,
    beforeSend: function (jqXHR, settings) {
        check = TestCallMethod();
            if (check.responseText != "true") {
                alert("Call Failed");
                jqXHR.abort(event);
            }
    }
});
于 2013-12-09T13:54:16.533 回答