jQuery data.length在1.4.4 vs 1.5.2(未定义的长度)

时间:2011-04-26 11:04:05

标签: jquery

在jQuery 1.4.4中。我有一个Ajax调用,成功后我会检查是否有任何返回,如下所示:

$.ajax({
    success: function(data) {
        if(data.length > 0) {
            //do something...
        }
        else {
            //do something else...
        }
    }
});

即使没有返回任何内容,data.length也会返回0并且一切正常。现在在1.5.2。数据本身是“未定义的”,当然,未定义的长度也是未定义的。

是否知道这两个版本之间发生了什么?如果没有很好地记录这些内容,那么升级到更新的jQuery版本是非常困难的。

1 个答案:

答案 0 :(得分:3)

因为您没有给出任何dataType jquery使用响应的MIME类型解释响应。您可以显式提供dataType以将数据解释为您想要的任何内容

$.ajax({
    dataType: 'html',
    success: function(data) {
        if(data.length > 0) {
            //do something...
        }
        else {
            //do something else...
        }
    }
});

在这种情况下,data将HTML作为纯文本。空响应返回一个空字符串。空字符串的长度为0,代码按预期工作。