0

当文件准备好我已经设置

    $.ajaxSetup({
        "error": function (XMLHttpRequest, textStatus, errorThrown) {
            if(XMLHttpRequest.status == 403) {
                display_modal( 'Please login to continue.', 'Session in closed.');
                //XMLHttpRequest.abort();
            }
        }
    });

防止来自未经身份验证的用户的 ajax 请求。

但在特定视图中,当发出 POST/GET 请求时,我有

   var posting = $.post(
            post_url, 
            $("#" + form).serialize(),
            function(data) {
                packet = data;
            },
            'json'
    );
    posting.done(function() { 
        form_post_response_function(e, packet); 
    });
    posting.fail(function() {
        var packet = {};
        packet.data = {};
        packet.data.type = "Ajax Post Fail";
        packet.status = -200;
        packet.statusMessage = "ERROR";
        form_post_response_function(e, packet); 
    });

我期待着posting.fail(function() {getting.fail(function() {不是被召唤。但它们是,所以所有的流程都进行了,它以另一个与 403 消息重叠的模式结束。

如果没有 raw ,我怎样才能避免这种情况$.ajax?如何在错误捕获处停止 JQuery 流?

最终代码

posting.fail(function(jqXHR, textStatus, errorThrown) {
    if(jqXHR.status != 403) {
        var packet = {};
        packet.data = {};
        packet.data.type = "Ajax Post Fail";
        packet.status = -200;
        packet.statusMessage = "ERROR";
        form_post_response_function(e, packet); 
} else {
           // event also can be accessed here
           $(get_target(e)).button('reset');
    }
});

它轻轻地停了下来。看起来不错。

4

2 回答 2

0

有关所有详细信息,请参阅 que Question

这是最终代码

posting.fail(function(jqXHR, textStatus, errorThrown) {
    if(jqXHR.status != 403) {
        var packet = {};
        packet.data = {};
        packet.data.type = "Ajax Post Fail";
        packet.status = -200;
        packet.statusMessage = "ERROR";
        form_post_response_function(e, packet); 
} else {
           // event also can be accessed here
           $(get_target(e)).button('reset');
    }
});
于 2013-09-08T16:14:36.880 回答
0

抛出异常以停止执行更多代码。

例如:throw "stop execution here";

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw

于 2013-09-06T09:30:20.223 回答