AJAX中判断返回数据

cz12980 2008-09-30 08:40:35
大家好!想请问一下~
在AJAX中!怎么能通过后台中是否返回数据来控制return呢?
没有数据是返回true。有时就返回false!

我是这样写的:
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
if (xmlHttp.responseText=="")
{alert('有东西');return false;}
else if(xmlHttp.responseText!="")
{alert('没有有东西');return true;}
document.getElementById("M_getCode2").innerHTML=xmlHttp.responseText

}

问题就是返回的速度太慢了~老是显示“没有东西”了!显示后在跳出了后台的信息~所以无论怎样也是返回了true!!
请问高手一下有办法吗??

非常谢谢~
我后台是用了asp来检测用户名是否存在的!用户名已经存在时就RESPONSE.WRITE("有户名存在")
...全文
249 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序员长弓 2008-10-05
  • 打赏
  • 举报
回复
xmlHttp.status==200是必须要判断的
Go 旅城通票 2008-10-03
  • 打赏
  • 举报
回复
改为同步提交


异步提交要自己写同步,我一般使用全局变量来处理
cz12980 2008-10-02
  • 打赏
  • 举报
回复
我这里的有一个函数调用了该ajax,alert出是有东西,应该是return false!但是为什么表单提交了呢?
kk()
{
return ajax()
}

onsubmit="return kk()"
study_live 2008-10-02
  • 打赏
  • 举报
回复

if (xmlHttp.readyState==4 && xmlHttp.status==200)
{
if (xmlHttp.responseText=="")
{alert('有东西');return false;}
else if(xmlHttp.responseText!="")
{alert('没有有东西');return true;}
document.getElementById("M_getCode2").innerHTML=xmlHttp.responseText

}


一定要判断xmlHttp.status==200再取值, status=200是说明xmlHttp返回成功了
nanyang9 2008-10-01
  • 打赏
  • 举报
回复
你写的这段代码是异步执行的.而且不公执行了一次,而是多次.

首先,异步执行的话,这返回给调用它的语句,而通常我们是这样调用的
xmlhttp.onreadystatechange=函数名
把值返回给它有什么用?

其次,如果你在你的代码之第一行加上这样的代码 alert(xmlHttp.readyState);
你会发现你的代码至少被调用了三次.

建议你用回调函数来处理这样的需求.


//callback参数为回调函数的名,这个函数要求有两个参数,一个表示状态,一个表示相关状态描述.
function ajax(url,callback){
callback(1,"开始提交");
var xmlHttp=createAjax();
xmlHttp.open("get",url,true);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200) callBack(2,xmlHttp.responseText);
else callBack(3,xmlHttp.responseText);
}
}
request.send();
}
//下面这个是自定义的回调函数,要求结构如下
var abcd=function(num,info){
if(num==1){alert("正在向服务器发送数据");}
esle if(num==2){
if(info=="") alert("没有内容");
esle alert("有返回内容");
}
esle if(num==3){alert("服务器内部错误");}
}


在调用的时候可以这样调用 ajax(url,abcd);

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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