java使用XMLHttpRequest每5秒在JS中发送一次空请求,并在Internet Explorer 9中返回304
我正在用java编写一个web应用程序。在我的html文件中,我有一个小javascript,它每五秒钟向服务器发送一个空请求以保留会话(心跳)
我正在使用XMLHttpRequest
对象将请求发送到Tomcat
服务器
问题是,在IE9
中,对于第一个请求,我得到状态200
,之后,对于每个请求,我得到304
答案。在Firefox和Chrome中,它运行良好
我怎么能在IE中不断地从Javascript发送空请求而不获取304
我的代码是:
<script>
var HeartBeatTimer;
function StartHeartBeat(){
// pulse every 30 seconds
if (HeartBeatTimer == null)
HeartBeatTimer = setInterval("HeartBeat()", 1000 * 5);
}
function HeartBeat(){
var HTTP_Response = new XMLHttpRequest();
HTTP_Response.open("GET", myurl , true);
HTTP_Response.send(null);
}
my servlet that get the request:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
}
此脚本的目的是使会话保持活动状态
# 1 楼答案
使用以下命令:
# 2 楼答案
可以通过发送以下HTTP头来禁止缓存:
# 3 楼答案
要么向url添加随机部分,要么发送
POST
请求或者
对于
POST
-版本,还需要调整servlet代码不要使用字符串作为
setInterval
或setTimeout
的第一个参数。只需传递函数本身