我正在对服务器进行AJAX调用,有时会返回不可解析的JSON。服务器不在我的控制之下,所以我无法解决这个问题。
function eventFunction(evt) {
$('div#status_bar').show();
$.ajax({
url: 'http://buggyserver.com/api/',
type: 'GET',
data: { 'mode': 'json', 'q': 'get/data' },
dataType: 'json',
success: updateForm
});
}
function updateForm(returned, status) {
if (status == 'success') {
//Update the form here
}
$('div#status_bar').hide();
}
当返回不可解析的JSON时,不会调用updateForm
函数。
我如何在客户端确保调用updateForm
函数的最后一行来隐藏状态栏?我已经尝试将try { } catch {}
子句放在AJAX调用和updateForm周围。
答案 0 :(得分:1)
你可以这样做:
function eventFunction(evt) {
$('div#status_bar').show();
$.ajax({
url: 'http://buggyserver.com/api/',
type: 'GET',
data: { 'mode': 'json', 'q': 'get/data' },
dataType: 'json',
success: updateForm,
complete: function() { $('div#status_bar').hide(); }
});
}
function updateForm(returned) {
//Update the form here
}
complete
回调在成功后触发,无论是否成功。