我的编码有问题,所以在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的错误,是否有可用的解决方法?
如果你能帮助我,那真是太棒了! :)
****** **** EDIT
我在这篇文章中找到了这个问题的原因:
Why does Internet Explorer not send HTTP post body on Ajax call after failure?
IE进入保持活动状态,不再在POST数据中发送正文。
要解决此问题,我会定期向服务器发送一个数据包(等于保持活动超时)以保持活动状态。这将导致一点点流量(每次刷新约200字节),但它仍然是一个更实用的解决方法,然后禁用Apache中的keep-alive。
这是我为此问题找到的唯一解决方案
对于遇到相同问题的人,我的刷新代码为5秒的保持活动超时:
var updateDiv = function ()
{
$.ajax({type: 'POST', url: 'timeout.php'});
yourTimer = window.setTimeout(updateDiv, 5000);
}
$( document ).ready(function() {
var yourTimer = window.setTimeout(updateDiv, 5000);
});
答案 0 :(得分:1)
或
或
3.您可以添加jquery migrate js文件来解决此问题。 http://code.jquery.com/jquery-migrate-1.2.1.js