在用xmlhttp.responsetext获取servlet中传过来的时候明明传来的值一样,但是判断的时候却显示不一样。
下面是我的代码:
function checkUseridCallback(){ // 回调函数
if (xmlHttp.readyState == 4){ // 数据返回完毕if (xmlHttp.status == 200){ // HTTP操作正常
var text = xmlHttp.responseText;// 接收返回内容
if (text=="true"){
//flag = false; // 无法提交表单
document.getElementById("msg").innerHTML = "用户名ID重复,无法使用";
}
else if(text=="false"){
//flag = true; // 可以提交表单
document.getElementById("msg").innerHTML = "恭喜!此用户ID可以注册";
}
else
{
//flag = true; // 可以提交表单
document.getElementById("msg").innerHTML = text;
}
}
}
}
但是我写代码的过程中发现 xmlHttp.responseText 的内容的确 为“true” 但是判断的时候还是不相等
原因很简单,就是在你的servlrt输出的时候用out.println("true") 这样导致输出的时候会在 返回值得后面多一个换行符。
因此在与"true"比较的时候出现不相等的情况
所以你只要把out.println改成 Out.print() 或者 out.write() 就可以解决了。
在使用xmlHttp.responseText获取Servlet返回值时,遇到比较不等的错误,原因是Servlet的out.println()方法会在输出后添加换行符。通过将out.println改为out.print()或out.write(),可以避免这个问题,从而解决值比较不相等的困扰。

8402

被折叠的 条评论
为什么被折叠?



