这是我目前所拥有的,如果请求超时则没有返回消息。
$.getJSON(jsonUrl, function(data){
/*here*/
if (data.stat != "ok") { //checks if query was valid
$('#content').html('content not available');
return;
}
else {...Do Code...}
});
我的问题是,如果没有返回Json提要,我可以(以及如何)请求Jquery重试多达2次,如果返回了feed,我如何检查json数据本身是否没有错误正确的json语法。
在返回完整的Feed之后,最后在/*here*/
执行之后执行所有操作吗?
答案 0 :(得分:1)
根据documentation,如果返回格式错误的json,$.getJSON
通常会无声地失败:
如果JSON中存在语法错误 文件,请求通常会失败 默默。避免频繁的手工编辑 由于这个原因,JSON数据。
至于重试请求最多两次,以下应该这样做:
function getJson() {
var json = (function () {
var json = null;
$.ajax({
'type': 'GET',
'async': false,
'global': false,
'url': '/some/url',
'dataType': "json",
'success': function (data) {
json = data;
}
});
return json;
})();
return json;
}
var json = getJson();
if(json.stat != "ok") {
for(var i = 0; i < 2; i++) {
json = getJson();
if(json.stat == "ok") {
break;
}
}
}
if(json.stat != "ok") {
$('#content').html('content not available');
} else {
// do stuff with json
}
是的,服务器返回后立即执行/*here*/
之后的所有内容。