我有一种情况需要处理潜在的错误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');
}
}
答案 0 :(得分:3)
如何确保始终收到回电?
使用.always()
附加处理程序!如果您想以不同方式处理错误,请使用fail
handler。
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');
});