日期:2014-05-17  浏览次数:20591 次

JS定时调用ajax请求action有点问题
页面如下:
$(function(){
setInterval(function send(){
$.ajax({
url:'send.do',
type:'post',
dataType:'json',
success:function(data,statusText){
                              //不弹
  alert(data);
}
}
);
},3000);
});

send.do对应
private static String msg="hello";
private static int num=0;

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {
System.out.println("====send====");
PrintWriter out=response.getWriter();
out.print(msg+new SimpleDateFormat("yyyy-mm-dd HH:MM:SS").format(new Date())+num++);
System.out.println("num:"+num);
out.close();
}

现在的问题是,每次请求,action都会执行、打印。但是为什么ajax的success中不会alert(data)呢?求解

------解决方案--------------------
function(data,textStatus)
------解决方案--------------------
定时执行
其本质,就是一个客户端js刷新执行的。
最简单的可以这样:
js的一个时间到了,便刷新页面,发一次request
------解决方案--------------------
我怎么感觉应该是跟dataType:'json' 这个有关,你换一种试试
------解决方案--------------------
1、吧dataType:'json',改成dataType:'text',试试
2、吧out.print(改成out.write(试试
------解决方案--------------------
dataType:'json'改成dataType:'html'
------解决方案--------------------
引用:
dataType:'json'改成dataType:'html'


这个方法很靠谱