Internet Explorer浏览器问题:浏览器未提交POST数据与Ajax请求,服务器/客户端挂起
我遇到了一个问题,即浏览器未从ajax请求提交POST数据,因此服务器等待它并挂起。浏览器,主要是IE8将发送头信息和内容长度是36,但服务器永远不会收到该36字节的数据。Internet Explorer浏览器问题:浏览器未提交POST数据与Ajax请求,服务器/客户端挂起
这也能说明问题,没有任何人有其他的解决方案:
IE hang for 5 minutes when calling synchronous xmlhttprequest
它发生的所有请求的10%左右。
什么会导致这个问题?有没有办法来防止它。这似乎主要来自客户端。也许,用户将切断他们的互联网连接并连接回去。
下面是从框架代码片段:
检票ajax.js: ......在客户端 JavaScript调用:
- t.open( “POST”, url,this.async);
- t.onreadystatechange = this.stateChangeCallback.bind(this);
- t.setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”);
- //设置一个特殊标志以允许服务器区分ajax和非ajax请求
- t.setRequestHeader(“Wicket-Ajax”,“true”);
- t.setRequestHeader(“Accept”,“text/xml”);
- t.send(body);
vÝMon11月28日12时36分24秒2011 000ee03c 0000999a - 详细信息:POST
... ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - 详细信息:接受:
文本/ XML
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - 详细信息:
接受语言:EN-US
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - 详细信息:检票AJAX:
真
ÝMonNov 28 12:36:242011¨000ee03c 0000999a - 详情:Referer:
https://data.com/l/launch/
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - 详细信息:
检票focusedelementid:id1924
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - 详细信息:内容类型: 应用/ X WWW的窗体-urlencoded
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - DETAIL:
接受编码:gzip,放气
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - DETAIL :用户代理:
Mozilla/4.0(compatible; MSIE 8.0; Windows NT 5.1;三叉戟/ 4.0; .NET CLR 2.0。50727; MS-RTC LM 8)
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - DETAIL:
的Content-Length:36
ÝMon11月28日12时36分24秒2011 000ee03c 0000999a - DETAIL:高速缓存 - 控制: 无缓存
ÝMon11月28日12点36分24秒2011 000ee03c 0000999a - 详细信息:饼干:
... 它发送的头请求数据,但仅此而已。
Arch配置: 服务器:带有IHS插件的IBM Websphere 6。 Wicket 1.4.13。的Java6。客户端主要是Internet Explorer 8,9。兼容性和非共享模式。
这可能是缓存问题。我建议你通过每次提交更改网址来伪造。所以,你的代码可能看起来像这样
var d = new Date();
t.open("POST", url+d.valueOf(), this.async);
因此,你的网址将永远不会被复制。这有助于防止缓存问题。
你看过Fiddler/Charles的请求,看看它发生了什么?这是同步还是异步调用? – epascarello
它是异步的。 –