ajax多次访问问题

山城忙碌人 2010-03-14 03:19:54
客户端使用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+"");//注:这次每次访问都能执行.代表每次都从数据库里读取到相应的数据的
但客户端为什么就接收不到呢.望高手指导一下.
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fancy161 2010-03-15
  • 打赏
  • 举报
回复
不同的浏览器对AJAX的支持不一样的~

try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";

}
catch(e)
{
try // Firefox, Mozilla, Opera, etc.
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(text,"text/xml");
}
catch(e)
{
alert(e.message);
return;
}
}
山城忙碌人 2010-03-15
  • 打赏
  • 举报
回复
这个现象很头在,在IE上多次访问服务端不行,但在火狐上就行.火狐上每次都能全部返回.
怎么样解决IE上访问的问题.希望大家多给我点意见.注:IE不行,火狐行.
山城忙碌人 2010-03-15
  • 打赏
  • 举报
回复
现在是第二次无法调用回调函数.服务端有相应的输出.是不是传参数出了问题.大家看看啥.
cyongyu 2010-03-15
  • 打赏
  • 举报
回复
呵呵,ajax,这个问题看起来还是挺值得关注的
zktbduandd 2010-03-15
  • 打赏
  • 举报
回复
貌似你服务端页面需要定义返回客户端形式,xml形式还是文本形式
山城忙碌人 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fancy161 的回复:]
不同的浏览器对AJAX的支持不一样的~

JScript code

try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";

}
catch(e)
{
try // Firefox, Mozilla, Opera,……
[/Quote]

不明白.parser这是什么意思
兼哲 2010-03-14
  • 打赏
  • 举报
回复
有缓存的话,请求地址尾挂一个随机数的钩子,就可以解决缓存问题了


post和get都可以的
山城忙碌人 2010-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 net_lover 的回复:]
request.open("GET",url,true);

你采用的post方法,也没有发送数据啊
[/Quote]
get有缓存,不能用GET,要用POST,我在服务端每次都能得到请求,并且有回应,只有客户端接收 不了。
孟子E章 2010-03-14
  • 打赏
  • 举报
回复
request.open("GET",url,true);

你采用的post方法,也没有发送数据啊

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧