如果内容为空,jQuery ajax调用返回空错误

时间:2013-08-14 12:05:08

标签: jquery jquery-mobile

我每次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();
            }         
        }
    });
}

2 个答案:

答案 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响应,即使响应是空的,例如“{}”而不是“”。