【问题标题】:Chrome doesn't seem to fire javascript xmlhttprequests after a form submit, but FF and IE do提交表单后,Chrome 似乎不会触发 javascript xmlhttprequests,但 FF 和 IE 会
【发布时间】:2011-11-08 22:00:31
【问题描述】:

我使用这个小技巧在加载下一页时更新当前页面。 当用户单击提交时,我设置了一个间隔计时器,它会 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 做到这一点吗?

【问题讨论】:

    标签: google-chrome xmlhttprequest


    【解决方案1】:

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

    【讨论】:

    • 我搜索了网络,这基本上是我找到的唯一有用的解决方案。谢谢!
    【解决方案2】:

    尝试添加这两个

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

    【讨论】:

    • 好主意,但没有效果。 :-( 其他人是怎么做到的?
    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多