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 に答える