ajax学习中,使用axios时遇到的问题
//js代码
axios.get("http://localhost:80/AJAX/selectUserServlet?username="+username)
.then(function (resp) {
if (resp.data == 'true'){
//用户名存在
document.getElementById("username_err").style.display = '';
} else {
//用户名不存在
document.getElementById("username_err").style.display = 'none';
}
})
//selectUserServlet.java代码
boolean flag = true;
//响应标记
response.getWriter().write("" + flag);
运行的结果是没有让样式改为''。即 document.getElementById("username_err").style.display = '';
尝试将if (resp.data == 'true')中的'true'改为true后可以达成效果,不知道是为什么?
明明response.getWriter().write("" + flag);中的flag即true应该被转化为了字符串
typeof resp.data 看下类型是否为boolean ,boolean类型就直接true比较,String 类型得'true'比较
楼上说的对,另外,80端口就可以忽略80了
说明后端返回的resp.data就是Boolean,即 true
可以在 回调函数中输出console.log('resp.data的类型', typeof resp.data, 'resp.data的值', resp.data)
看看
//js代码
axios.get("http://localhost:80/AJAX/selectUserServlet?username="+username)
.then(function (resp) {
console.log('resp.data的类型', typeof resp.data, 'resp.data的值', resp.data)
if (resp.data == 'true'){
//用户名存在
document.getElementById("username_err").style.display = '';
} else {
//用户名不存在
document.getElementById("username_err").style.display = 'none';
}
})