首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

Ajax xmlHttp.responseText 返回值解决方案

2013-01-04 
AjaxxmlHttp.responseText返回值我在用ajax时遇到如下问题,见下面js代码的红字部分.不知道怎么得到正确的

Ajax xmlHttp.responseText 返回值
我在用ajax时遇到如下问题,见下面js代码的红字部分.不知道怎么得到正确的值.求解释 
var IsCode;
      var xmlHttp=GetXmlHttpObject();
      if (xmlHttp==null)
      {
       alert("您的浏览器不支持AJAX");
       return;
      }      
       xmlHttp.onreadystatechange=function()
      {
        if(xmlHttp.readyState==4)
        {
          if(xmlHttp.status==200)
          {
             IsCode=xmlHttp.responseText;    
             alert(IsCode);                             /// 这里得到的是整个HTML代码
           }
        //    document.getElementById("IDinfo").innerHTML=xmlHttp.responseText;      
        }
      }
          xmlHttp.open("POST","<%=request.getContextPath()%>/jsp/IDinfo.jsp?req=2&code="+document.getElementById("code").value,true);
          xmlHttp.send(null);
         
      alert(IsCode);                         //这里得到的却是undefined


IDinfo.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<jsp:useBean id="register" scope="session"
class="edu.tongji.sse.p082940.lxj.javabean.Register"></jsp:useBean>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>
  
  <body> <% if(request.getParameter("req").equals("1")) {%>
  <font size="2" style="color:red;">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp两次密码不一致 </font>  


  <%} 
  else if(request.getParameter("req").equals("2")) 
  {
  if(request.getSession().getAttribute("correctCode").equals(request.getParameter("code")))  
   out.write("1");
   else
   out.print("0");
  }
  else {
   if(register.isSameid()==true) {%>
      <font size="2" style="color:red;">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp用户名已存在 </font>  
  <%} 
    }%>
  </body>
</html>

[解决办法]
输出的时候出的问题
不要输出全部

那个地方没有值是异步造成的
[解决办法]
xmlHttp.open("POST","<%=request.getContextPath()%>/jsp/IDinfo.jsp?req=2&code="+document.getElementById("code").value,true);
true改成false

至于responseText的值是后台输出的 我不懂jsp 你去问下怎么输出
[解决办法]
因为是异步执行的,你的内容还没有返回就执行 
xmlHttp.send(null);
alert(IsCode);

所以会出现你的现象。要获得结果,你必须在 onreadystatechange 里获取
或者true改成false
[解决办法]

引用:
因为是异步执行的,你的内容还没有返回就执行 
xmlHttp.send(null);
alert(IsCode);

所以会出现你的现象。要获得结果,你必须在 onreadystatechange 里获取
或者true改成false


+1

热点排行