繁体   English   中英

无论成功如何,都将从getJSON获取回调

[英]Getting a callback from getJSON regardless of success

我遇到需要处理可能有问题的CGI解释器的情况。 在所有情况下,我都需要从getJSON调用中获取某种类型的回调。 其中包括发送到testIt函数的伪参数(请参见下文)和CGI发送伪响应。 我认为将整个内容包装在try / catch中以处理第一种情况,并添加.done以处理第二种情况就可以了。 但是,如果CGI处理器输出无效响应,则不会调用我的.done。 如何确保总是收到回调?

我正在使用的代码如下。

function testIt() {
    try
    {
        console.log('start');
        $.getJSON(
            // URL of the server
            cgi_url,
            // pass the data
            {
                data: 'bogus',
            },
            // If the AJAX call was successful
            function() {
                console.log('worked');
            }
        )
        .done(function() {
                console.log('done');
            });
    }
    catch (err) {
        console.log('exception');
    }
}

如何确保总是收到回调?

使用.always()附加您的处理程序! 如果您想以不同的方式对待错误,请使用fail处理程序

console.log('start');
$.getJSON(cgi_url, {data: 'bogus'})
    .done(function() { // If the AJAX call was successful
        console.log('worked');
    })
    .fail(function() { // If the AJAX call encountered an error
        console.log('exception');
    })
    .always(function() { // When the AJAX call ended
        console.log('done');
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM