我每次getResult()
都会调用res.reply = 2
函数,但有些情况res
为空。当返回的值为空时,将调用console.log("error")
。这适用于旧版本的 jQuery Mobile 。现在版本是 1.3.2 。
function getResult()
{
request = $.ajax({
type: "POST",
url: url,
dataType: "json",
data: {
....
},
error: function() {
console.log("error");
},
success: function(res) {
if(res.reply=='2') {
getResult();
}
}
});
}
答案 0 :(得分:25)
dataType: "json"
意思是:给我json,别的什么。一个空字符串不是json,所以收到一个空字符串意味着它不成功......
request = $.ajax({
type: "POST",
url: url,
data: {
....
},
error: function() {
console.log("error");
},
success: function(res) {
var response = jQuery.parseJSON(res);
if(typeof response == 'object'){
if(response.reply == '2') {
getResult();
}
} else {
//response is empty
}
}
});
答案 1 :(得分:0)
通常看起来你确实想要一个JSON响应,所以我不会将你的dataType改为“text”,而是让服务器返回一个有效的JSON响应,即使响应是空的,例如“{}”而不是“”。