AJAX传参从失败到成功小结:
看了AJAX基础教程,感觉不错,但是在向服务器传递参数的时候总是会有让我感到苦恼的问题,
比如下面的代码:
<SCRIPT type="text/javascript">
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
function startRequest(Sid){
createXMLHttpRequest();
xmlHttp.open("GET","/CountServlet?Sid="+Sid,true);
xmlHttp.send(null);
}
</SCRIPT>
在服务端的CountServlet的doGet()方法在多次请求之间只会被调用一次,痛苦!!!(难道是异步的问题...)
于是我又改了一下xmlHttp的open方法的参数如下,
xmlHttp.open("POST","/CountServlet,true)
xmlHttp.send("Sid="+Sid);
结果在服务器端的doPost()方法在每次请求都会被正常调用,但是,request.getPrameter("Sid")方法就是怎么也获得不到参数Sid,
在高手的帮助下,我又再次改了代码,如下:
xmlHttp.open("POST","/CountServlet?Sid="+Sid,false);
xmlHttp.send(null);
嘿,还真的,牙好,胃口就好,入口见效,doPost()方法能正常被调用,参数也传得到,具体是什么原因,我还在学习之中...
8.19日加:
解决办法:
除了高手回复的方法,还有一种解决办法就是:
xmlHttp.open("GET","/CountServlet?Sid="+Sid+"&timeStamp="+new Date().getTime(),false);
xmlHttp.send(null);
同样是解决缓存的问题..