the XMLHttpRequest object causes two TCP SYN Packets when I try to send some POST data. This happens in less than a millisecond. I cannot reproduce this behavior in any other browser (tested with the latest Firefox and Google Chrome browser).
Even the 'asynch' Flag or timeout setting does not seem to change the situation.
The Problem is that when IE9 sends two SYN, they will be automatically ackowledged by the Server's TCP/IP Stack. But unfortunately IE9 then sends the Post data in the second stream, which means that the web server is already waiting for bytes on the first socket (causes a timeout). This happens because we are talking about a single threaded web server that can handle one socket at once.
Any suggestions or ideas?
I would like to prevent IE9 from establishing two sockets at once.
This hap开发者_开发百科pens no matter if I use the Jquery ajax function or implement it by myself in java script.
Best Regards
Matthias
Just an idea, you could try adding a Connection: close
header in all server responses to make sure the browser is starting a new tcp connection for every request.
We are noticing the same thing via wireshark, IE9's own F12 debugger shows a single POST, but the packets coming out of the client IE9 machine shows two POSTS... and the server receives 2 as well which causes inconsistent problems for our app on the server side.
Version 9.0.8112.16421, update versions 9.0.3 (KB 2586448)
We had to enable the IE8 compatibility header to stop the double posts
<meta http-equiv="X-UA-Compatible" content="IE=8" /
>
It's very odd... doesn't happen with all our forms, almost like the JS compiler is coming to certain conclusions about how to execute the code in different contexts.
Good to know about the header close on the client side... that might be better for us long term... hopefully it will be resolved in IE9
精彩评论