在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版本是非常困难的。
答案 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,代码按预期工作。