Internet Explorer口吃请求

时间:2012-07-06 10:20:52

标签: javascript internet-explorer

对于一个特殊项目,我选择编写我自己的小型Web服务器,实际上很容易使用.Net Framework(HttpListener类)。

直到昨天我开始使用Internet Explorer进行测试时,一切都运行良好。

我的服务器一直在崩溃任何ie请求!我终于设法找出了原因:即懒散的口吃! (至少ie7和ie8,我还没有尝试过其他版本)。

FireFox,Chrome和Opera都不会出现问题。

更具体地说,我在网页中使用动态javascript插件来绕过跨域调用场景中的相同源策略。该脚本生成对我的小服务器的请求。假设建立的请求是:

http://localhost:8081/myService?p1=A,p2=B,p3=C,p4=D,p5=E

使用FFox,Chrome或Opera,我的服务器确实会收到来自浏览器的单个请求:

http://localhost:8081/myService?p1=A,p2=B,p3=C,p4=D,p5=E

使用ie,我的服务器收到随机数量的部分请求,如:

http://localhost:8081/myService?p1=A,
http://localhost:8081/myService?p1=A,p2=B,
http://localhost:8081/myService?p1=A,p2=B,p3=C,
http://localhost:8081/myService?p1=A,p2=B,p3=C,p4=D,

(实际上很多因为我有20个参数左右......)

最后:

http://localhost:8081/myService?p1=A,p2=B,p3=C,p4=D,p5=E

这基本上没什么大不了的,因为我的逻辑能够处理缺乏参数的情况。问题是每个不完整的请求实际上都会关闭连接(错误1229)。那就是试图回答每个请求的服务器崩溃了。修复很容易,但我仍然不喜欢服务器充斥着那些中间“无法回答”的事实,因此没有用处。 (此外,请求有时看起来像:

http://localhost:8081/myService?p1=A,p2=B,p3=C,?p1=A,p2=B,p3=C,p4=D,p5=E

!!! )

我跟踪了javascript:生成函数只被调用一次(无论什么浏览器),所以这听起来像是一个问题。

有没有人有想法阻止这种行为?

0 个答案:

没有答案