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

Java Internet Explorer浏览器问题:浏览器未使用Ajax请求提交POST数据,服务器/客户端挂起,java,javascript,ajax,internet-explorer,wicket,Java,Javascript,Ajax,Internet Explorer,Wicket,我遇到一个问题,浏览器没有从ajax请求提交POST数据,因此服务器等待并挂起。浏览器(主要是IE8)将发送标题信息,内容长度为36字节,但服务器从未接收到这36字节的数据 这也描述了问题,其他人是否有其他解决方案: 它发生在所有请求中的10%左右 什么会导致这个问题?有什么方法可以预防它吗。这似乎主要发生在客户端。也许,用户会切断他们的互联网连接并重新连接 以下是框架代码的一个片段: wicket-ajax.js: ... 客户端上的Javascript调用: t、 打开(“POST”、ur

我遇到一个问题,浏览器没有从ajax请求提交POST数据,因此服务器等待并挂起。浏览器(主要是IE8)将发送标题信息,内容长度为36字节,但服务器从未接收到这36字节的数据

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

它发生在所有请求中的10%左右

什么会导致这个问题?有什么方法可以预防它吗。这似乎主要发生在客户端。也许,用户会切断他们的互联网连接并重新连接

以下是框架代码的一个片段:

wicket-ajax.js: ... 客户端上的Javascript调用:

  • t、 打开(“POST”、url、this.async)
  • t、 onreadystatechange=this.stateChangeCallback.bind(this)
  • t、 setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”)
  • //设置一个特殊标志,允许服务器区分ajax和非ajax请求
  • t、 setRequestHeader(“Wicket Ajax”、“true”)
  • t、 setRequestHeader(“接受”、“文本/xml”)
  • t、 发送(正文) 2011年11月28日星期一12:36:24–000ee03c 000099A-详细信息:POST
    ... 2011年11月28日星期一12:36:24–000ee03c 000099A-详细信息:接受:
    text/xml
    2011年11月28日星期一12:36:24–000ee03c 000099A-详情:
    接受语言:en-us
    2011年11月28日星期一12:36:24–000ee03c 000099A-详情:wicket ajax:
    正确
    2011年11月28日星期一12:36:24–000ee03c 000099A-详细信息:参考:

    2011年11月28日星期一12:36:24–000ee03c 000099A-详情:
    wicket focusedelementid:id1924
    2011年11月28日周一12:36:24–000ee03c 000099A-详细信息:内容类型: 应用程序/x-www-form-urlencoded
    2011年11月28日星期一12:36:24–000ee03c 000099A-详情:
    接受编码:gzip,放气
    2011年11月28日星期一12:36:24–000ee03c 000099A-详细信息:用户代理:
    Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET CLR 2.0.50727;MS-RTC LM 8)

    2011年11月28日星期一12:36:24–000ee03c 000099A-详情:
    内容长度:36
    2011年11月28日星期一12:36:24–000ee03c 000099A-详细信息:缓存控制: 没有缓存
    2011年11月28日星期一12:36:24–000ee03c 000099A-详细信息:Cookie:
    ... 它发送报头请求数据,但仅此而已

    拱门配置:
    服务器:带有IHS插件的IBMWebSphere6。边门1.4.13。Java6。客户端主要是Internet Explorer 8、9。兼容和非兼容模式

    这可能是缓存问题。我建议你通过每次提交更改url来伪造。因此,您的代码可能如下所示

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

    因此,您的url将永远不会被复制。这有助于防止缓存问题。

    您是否使用Fiddler/Charles查看了请求,并了解了发生的情况?这是同步调用还是异步调用?URL正在更改每个请求。async是真实的,但使用微软的IE产品,每一个问题都是可能的,不是吗?:)