客户端使用AJAX访问服务器.代码如下:
function ajax(i,id){
var state = document.getElementById("sele1"+i).value; 
request.onreadystatechange=function(){bisu(i)}; 
var url = "AjaxPriceServlet?ajaxstate="+state+"&id="+id+"&_d=" + new Date().getTime();
alert(url);
request.open("post",url,true); 
request.send(null);

function bisu(i){if(request.readyState==4){
var out_ajax = document.getElementById("priceDiv"+i);
var date = request.responseText; 
alert(date);
out_ajax.innerHTML=date; }
其它省略:服务端如下:
response.setHeader("Cache-Control", "no-cache, must-revalidate");response.setHeader("Cache-Control", "no-cache, must-revalidate");
String ajaxstate = request.getParameter("ajaxstate");
//ajaxstate = Service.getReturnStr(ajaxstate);
String strId = request.getParameter("id");
String sql = "select " + state + " from clientlog where id = " + id;
double outPrice = com.clientLog.model.ClientModel.getClientModel().getAjaxPrice(sql);
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter(); 
out.print(outPrice+" 分");
out.flush();
System.out.println(outPrice+"");//注:这次每次访问都能执行.代表每次都从数据库里读取到相应的数据的
但客户端为什么就接收不到呢.望高手指导一下.

解决方案 »

  1.   

    var date = eval('('+request.responseText+')');试试
      

  2.   

    post请求设置一下头,不然会出问题xmlHttp.setRequestHeader("Content-Type", "application/x-www-urlencoded");
      

  3.   

    request.onreadystatechange=bisu; 
      

  4.   

    XMLHttpRequest对象你是不是共用了
    每次发送一次请求,就从新获得一个XMLHttpRequest对象吧
      

  5.   

    这个现象很头在,在IE上多次访问服务端不行,但在火狐上就行.火狐上每次都能全部返回.
    怎么样解决IE上访问的问题.希望大家多给我点意见.注:IE不行,火狐行.