纤芊_fish
2010-05-28 15:54
浏览 259

Ajax 与 Servlet 之间通信问题

Ajax主要请求代码:
function showHint()
{
xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)
{
alert ("Ajax not support");
return;
}

var url="syncsendtocp";
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
通过window.setInterval('showHint()', 6000);进行定时执行

SyncSendToCP HttpServlet响应代码
public void doGet(HttpServletRequest req, HttpServletResponse resp){
try{
PrintWriter pw=resp.getWriter();
pw.println(change);
pw.flush();
pw.close();
}catch(Exception e){
e.printStackTrace();
}
}

web配置文件

SyncSendToCP
com.openlab.publicopinion.struts.action.SyncSendToCP

debug
0

1

遇到的问题是这样,第一次Ajax执行到后台查询数据的时候,SyncSendToCP的DoGet方法能正常响应,但是Ajax循环执行到第二次以及以后的时候,SyncSendToCP的DoGet方法根本没有响应,感觉像是没有获取到这个Get请求,是为什么呀?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • weixin_42518082 2010-05-28 16:21
    已采纳

    去除缓存...
    在doGet中加入[code="java"]
    response.setHeader("Expires", "0");
    response.setHeader("Cache-Control", "no-store");
    response.setHeader("Pragrma", "no-cache");
    response.setDateHeader("Expires", 0);
    [/code]

    点赞 评论
  • myali88 2010-05-28 16:24

    我试过没有你说的问题,不过我用的是JQuery里的ajax方法发起的请求,我看是你的AJAX有问题:
    [code="javascript"]
    function showHint()
    {
    xmlHttp=GetXmlHttpObject()

    if (xmlHttp==null)
    {
    alert ("Ajax not support");
    return;
    }

    var url="syncsendtocp";
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
    }
    [/code]

    点赞 评论

相关推荐 更多相似问题