使用Ajax接收到Servlet返回的boolean类型数据时的字符串比较问题
当servlet向Ajax返回一个boolean类型的数据时,ajax接收到的是一个字符串类型的 ”true“ 或者 ”false“, 但是当我们直接使用ajax接收到的数据去做一个判断时,比如:
$.ajax({
url: "xxxx",
data: {
xxx
},
success: function (data) {
if ( data == "true" ){
alert( "data = true" );
}else {
alert( "data = false" );
}
}
});
这时我们会发现无论servlet向ajax返回的时一个true还是一个false,这个请求成功函数中的 if 语句的结果始终为 false。
遇到这种情况时,我们需要将 if 语句里的条件修改为下面的代码就可以。
$.ajax({
url: "xxxx",
data: {
xxx
},
success: function (data) {
if ( data.toString().trim() == "true" ){
alert( "data = true" );
}else {
alert( "data = false" );
}
}
});
总结出现这种状况的原因可能是由于servlet在向ajax返回数据时使用的语句为
out.println();
导致ajax接收到的数据中始终有一个换行符。