14

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();
            }         
        }
    });
}
4

2 回答 2

28
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 
        }
    }
});
于 2013-08-14T14:46:51.340 回答
0

看起来通常你确实想要一个 JSON 响应,所以我不会将你的 dataType 更改为“text”,而是让服务器返回一个有效的 JSON 响应,即使响应为空,例如“{}”而不是“” .

于 2014-01-13T23:12:06.980 回答