gpt4 book ai didi

java - 在 Internet Explorer 9 中,在 JS 中每 5 秒使用 XMLHttpRequest 发送一次空请求返回 304

转载 作者:行者123 更新时间:2023-11-27 22:36:52 25 4
gpt4 key购买 nike

我正在用 Java 编写 Web 应用程序。在我的 html 文件中,我有一个小的 javascript,它每五秒向服务器发送一个空请求以保留 session (心跳)。

我正在使用 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 {

这个脚本的目的是让我的 session 保持活跃

最佳答案

向 url 添加随机部分或发送 POST 请求

myurl = myurl + "?_=" + (+new Date());

HTTP_Response.open("POST", myurl, true);

对于 POST 版本,您还需要调整 servlet 代码。

并且不要使用字符串作为setIntervalsetTimeout 的第一个参数。只需传递函数本身。

setInterval(HeartBeat, 1000 * 5);

关于java - 在 Internet Explorer 9 中,在 JS 中每 5 秒使用 XMLHttpRequest 发送一次空请求返回 304,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com