在表单提交后,Chrome似乎不会触发javascript xmlhttprequests,但FF和IE会这样做

时间:2011-11-08 22:00:32

标签: google-chrome xmlhttprequest

我使用这个小技巧在下一页加载时更新当前页面。 当用户点击提交时,我设置了一个间隔计时器,它对服务器进行xhr调用,以查明响应的持续时间,并使用此信息更新页面,从而成功地娱乐用户。

在Firefox和IE中,这样可以正常工作,但在表单提交发生后,它似乎在chrome中,setinterval调用仍将触发,但xmlhttprequest实际上从未执行过请求。我没有得到任何错误或例外,只是这样做

    xmlhttp.onreadystatechange = statstatechange;
    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.send(postdata);

我的statstatechange函数永远不会被调用,我在服务器端看不到任何请求,所以据我所知,请求永远不会被发出。

知道如何制作chrome吗?

2 个答案:

答案 0 :(得分:1)

对于在chrome中遇到相同问题的任何人:事实证明,如果您在页面上有iframe,则可以在该iframe中触发xhr请求,即使在提交了主要顶级页面表单后它们仍将继续工作。所以这是一个糟糕的解决方法,但至少它起作用。

答案 1 :(得分:0)

尝试添加这两个

xmlhttp.setRequestHeader('Content-length',url.length);
xmlhttp.setRequestHeader('Connection','close');