刚用ajax!做了一个用户登陆的例子,不知道哪里错了!进来帮我看看

凉凉二点凉 2007-05-17 02:28:58
var xmlHttp;
var status;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();

}
}
function testName()
{


createXMLHttpRequest();
var username=document.form1.username.value;
var password=document.form1.password.value;
var url="/TestAjsax/CheckPower?username="+username+"&password="+password;
xmlHttp.open("GET", url,true);

xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);


}

function callback() {
if (xmlHttp.readyState == 4) {

if (xmlHttp.status == 200) {

//var status = xmlHttp.responseText.getElementsByTagName("status").firstChild[0].nodeValue;
status=xmlHttp.responseText;
setData();
}
}
}
function setData() {
if(status=="1")
{
alert("密码错误或用户名不存在");
return false;
}if(status=="2")
{
alert("登陆成功");
return true;
}}
这个地方有点搞笑,逻辑没有问题,它能正确判断,可是不管密码错的还是对的,它都返回一个true;
我在jsp页面中的button事件onlick="return testName()"不管密码错了还是对了,它都跳转
不知道哪里有问题!
...全文
526 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun113 2007-05-24
  • 打赏
  • 举报
回复
缓存作用??!!原来如此,也学习了!加上时间戳是个好习惯!
anhy 2007-05-23
  • 打赏
  • 举报
回复
应该是浏览器对="/TestAjsax/CheckPower?username="+username+"&password="+password的返回进行了缓存,可以在响应中禁止浏览器缓存;

=======如下为禁止缓存的方法=======
1, 在jsp或者servlet中加入
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>
2, 在页面中使用HTML标记,如下面:
<HEAD>
<META http-equiv=Pragma content=no-cache>
<META http-equiv=Cache-Control content=no-cache>
<META http-equiv=Expires content=0>

FireElement 2007-05-23
  • 打赏
  • 举报
回复
用true也可以,但是你要在url后面加一个时间戳、
url="/TestAjsax/CheckPower?username="+username+"&password="+password+"×tamp="+当前时间
凉凉二点凉 2007-05-23
  • 打赏
  • 举报
回复
xmlHttp.open("GET", url,false);
和xmlHttp.open("GET", url,true);
有什么区别啊
凉凉二点凉 2007-05-23
  • 打赏
  • 举报
回复
改成mygia(www.gzcost.com)所说的xmlHttp.open("GET", url,false);
就可以了~!为什么?能不能说下啊!
凉凉二点凉 2007-05-23
  • 打赏
  • 举报
回复
你的setData里面的两个条件都没执行到,你说这个方法会返回什么?
为什么?为什么没有执行到?
mygia 2007-05-23
  • 打赏
  • 举报
回复
你的setData里面的两个条件都没执行到,你说这个方法会返回什么?
mygia 2007-05-23
  • 打赏
  • 举报
回复
xmlHttp.open("GET", url,false);
凉凉二点凉 2007-05-23
  • 打赏
  • 举报
回复
大家有没有顶啊
tafse2004 2007-05-22
  • 打赏
  • 举报
回复
我也遇到这样的问题,很奇怪的是,当有alert()时候,返回就是正确的,如果没有,就返回一样的值,不管你怎么样操作,我怀疑是不是因为ajax异步,当在alert时候去执行指定的程序了,而没有alert时候就不去执行?希望高手指点
sun113 2007-05-22
  • 打赏
  • 举报
回复
mark,好困惑的问题昂!
凉凉二点凉 2007-05-19
  • 打赏
  • 举报
回复
...............
凉凉二点凉 2007-05-17
  • 打赏
  • 举报
回复
我alert()了正确的
凉凉二点凉 2007-05-17
  • 打赏
  • 举报
回复
这是我的jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBk">
<title>ajax+struts</title>
</head>
<script type="text/javascript" src="../js/checkName.js">

</script>
<body>
<form name="form1" method="post" action="www.sina.com.cn">
<input name="username" type="text" maxlength="20" />
<input type="password" name="password" />
<input type="submit" onclick="testName();"/>
</form>


</body>
</html>
tonyzhangcn 2007-05-17
  • 打赏
  • 举报
回复
在if(status=="1")前方一个alert(status)来看看当前status的值,或许根本不是1,或者2呢。
凉凉二点凉 2007-05-17
  • 打赏
  • 举报
回复
帮我看看啊

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧