Internet Explorer浏览器问题:浏览器未提交带有Ajax请求的POST数据,服务器/客户端挂起

时间:2011-11-29 19:10:32

标签: java javascript ajax internet-explorer wicket

我遇到的问题是浏览器没有从ajax请求提交POST数据,因此服务器等待它并挂起。浏览器,主要是IE8将发送头信息,内容长度为36,但服务器永远不会收到36字节的数据。

这也描述了问题,是否有其他人有其他解决方案:

IE hang for 5 minutes when calling synchronous xmlhttprequest

大约占所有请求的10%。

什么会导致这个问题?有没有办法防范它。它似乎主要来自客户端。也许,用户将切断他们的互联网连接并重新连接。

以下是框架代码的片段:

检票ajax.js: ... 客户端的Javascript调用:

  1. t.open(“POST”,url,this.async);
  2. t.onreadystatechange = this.stateChangeCallback.bind(this);
  3. t.setRequestHeader(“Content-Type”,“application / x-www-form-urlencoded”);
  4. //设置一个特殊标志,以允许服务器区分ajax和非ajax请求
  5. t.setRequestHeader(“Wicket-Ajax”,“true”);
  6. t.setRequestHeader(“Accept”,“text / xml”);
  7. t.send(主体);
  8. vÝMonNov28 12:36:242011¨000ee03c0000999a - DETAIL:POST
    ... ÝMonNov11月12日:36:242011¨000ee03c0000999a - 详情:接受:
    文/ XML
    ÝMonNov11月12日:36:242011¨000ee03c0000999a - DETAIL:
    接受语言:en-us
    ÝMonNov11月12日12:36:242011¨000ee03c0000999a - DETAIL:wicket-ajax:
    真正
    ÝMonNov11月12日:36:242011¨000ee03c0000999a - DETAIL:Referer:
    https://data.com/l/launch/
    ÝMonNov11月12日:36:242011¨000ee03c0000999a - DETAIL:
    wicket-focusedelementid:id1924
    ÝMonNov11月12日12:36:242011¨000ee03c0000999a - DETAIL:Content-Type: 应用程序/ x-WWW窗体-urlencoded
    ÝMonNov11月12日:36:242011¨000ee03c0000999a - DETAIL:
    Accept-Encoding:gzip,deflate
    ÝMonNov11月12日:36:242011¨000ee03c0000999a - DETAIL:User-Agent:
    Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident / 4.0; .NET CLR 2.0.50727; MS-RTC LM 8)

    ÝMonNov28 12:36:242011¨000ee03c0000999a - DETAIL:
    内容长度:36
    ÝMonNov11月12日:36:242011¨000ee03c0000999a - DETAIL:Cache-Control: 无缓存
    ÝMonNov11月12日:36:242011¨000ee03c0000999a - DETAIL:Cookie:
    ... 它发送头请求数据但是全部。

    Arch配置: 服务器:带有IHS插件的IBM Websphere 6。 Wicket 1.4.13。的Java6。客户端主要是Internet Explorer 8,9。兼容性和非Compat模式。

1 个答案:

答案 0 :(得分:-1)

这可能是缓存问题。我建议你通过每次提交更改网址来伪造。所以,你的代码可能看起来像这样

    var d = new Date();
    t.open("POST", url+d.valueOf(), this.async);

因此,您的网址永远不会重复。这有助于防止缓存问题。