Ajax异步访问远程服务并设置超时

来源:互联网 发布:java同步方法 编辑:程序博客网 时间:2024/06/06 09:13
输入卡号:

验证结果:

<html><head><script type="text/javascript">var xmlHttp=null;var havereturn=false; function showHint(str){if (str.length==0)  {   document.getElementById("txtHint").innerHTML="";  return;  }try  {// Firefox, Opera 8.0+, Safari, IE7  xmlHttp=new XMLHttpRequest();  }catch(e)  {// Old IE  try    {    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");    }  catch(e)    {    alert ("Your browser does not support XMLHTTP!");    return;      }  }  xmlHttp.onreadystatechange=function(){   if (xmlHttp.readyState == 4) {     if (xmlHttp.status == 200) {        if(!havereturn){           //你处理返回结果的代码     clearTimeout(cleaeTO);         alert(xmlHttp.responseText);       }     }     havereturn=true;   } } havereturn=false; var url="http://127.0.0.1:8089/webbfp/black.htm?cardid=" + str;xmlHttp.open("post",url,true);//false则不用写callback回调函数 true则需要写var cleaeTO = setTimeout(function()  /*重点,在请求发布后开始设置setTimeout,如果请求状态不成功也就是readyState != 4 那么setTimeout将会在5秒后运行,并弹出信息提示,要是请求成功,将会清除该setTimeout*/            {                xmlHttp.abort(); //终止XMLHttpRequest对象                alert("系统异常,请您刷新页面或稍后再试….");            },5000);xmlHttp.Send(null); //document.getElementById("txtHint").innerHTML=xmlHttp.responseText;}</script> </head><body><form> 输入卡号:<input type="text" id="txt1"  onBlur="showHint(this.value)"></form><p>验证结果: <span id="txtHint"></span></p> </body></html>

原创粉丝点击