日期:2014-05-16  浏览次数:20692 次

我的AJAX服务只执行一次请求,关闭浏览器再重新打开也执行一次!
我的代码如下:
一、JSP代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head runat="server">
<title>RoleManager</title>
<%@page contentType="text/html; charset=GB2312" import="CMMN.connect.MyDBMD,java.sql.ResultSet"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript" type="text/javascript">

  //AJAX定义
  var xmlHttp = false;
  function createXMLHttpRequest()
  {
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
  xmlHttp = false;
  }
}
  }

  function add_role_request()
  {

  if (xmlHttp == false){
  createXMLHttpRequest();
  }
  xmlHttp.onreadystatechange = handleStateChange;
  xmlHttp.open("GET","AddRole.jsp",true);
  xmlHttp.send(null);

  }
  function handleStateChange()
  {
  if(xmlHttp.readyState==4)
  {
  if(xmlHttp.status==200)
  {
  alert("add role is ok");
  }else{
  alert("other error");
  }
  }
  }

</script></head>
<body>
<form id="Form1" method="post" runat="server" name="fm">
<input type="button" value="<<添 加" onclick="javascript:add_role_request()">
  </form>
  </body>
</html>
二、调用界面代码,AddRole.jsp代码如下 :
<html>
<%@page import="java.util.*,java.sql.*,CMMN.connect.*" contentType="text/html;charset=GB2312"%>
<body>
<%
System.out.println("why?????");
%>
</body>
</html>

以上是全部代码,我用是JBUILDER2005,运行时,第一次点“添加”按钮时,输出:"why?????",一切正常,跟预想的一样,但是第二次点按钮就没输出了,只有提示框alert("add role is ok");运行,当我关闭浏览器(不停止服务),重新打开浏览器后,第一次点“添加”时,跟上次运行结果一样,第二次、第三次、....再点就又没反应了。

请教一下这是怎么回事?

------解决方案--------------------
ie缓存的问题吧。。。。
JScript code
//加时间戳
xmlHttp.open("GET","AddRole.jsp?ts="+new Date(),true);