我的编码有问题,所以在 Firefox 中它可以正常工作,但在 IE9 中它只能在前 5 秒内工作。在那之后,我不再收到任何 POST 数据。
我想使用表单输入的值作为 POST 变量通过 AJAX 加载 PHP 页面。前 5 秒我可以在请求的页面上收到 POST,但之后我只收到一个空字符串。
这是我的代码:
function reload_form(){
var data = $("#formularfelder").serialize()
$.ajax({
type: 'POST',
url: 'content/formular.php',
data: data,
success: function(msg) {
$("#form_container").html(msg);
}
});
}
它是 IE9 的错误吗?是否有可用的解决方法?
如果你能帮助我,那就太棒了!:)
******编辑****
我在这篇文章中找到了这个问题的原因:
为什么 Internet Explorer 在 Ajax 调用失败后不发送 HTTP 帖子正文?
IE 遇到保持活动超时并且不再在 POST 数据中发送正文。
为了解决这个问题,我以固定的时间间隔(等于保持活动超时)向服务器发送一个数据包以保持保持活动状态。这将导致一点流量(每次刷新约 200 字节),但它仍然是一个更实用的解决方法,然后禁用 Apache 中的保持活动。
这是我为这个问题找到的唯一解决方案
对于有同样问题的人,这是我的刷新代码,保持活动超时 5 秒:
var updateDiv = function ()
{
$.ajax({type: 'POST', url: 'timeout.php'});
yourTimer = window.setTimeout(updateDiv, 5000);
}
$( document ).ready(function() {
var yourTimer = window.setTimeout(updateDiv, 5000);
});