诊断Internet Explorer 9无法提交表单

我有一个内部部署的Intranet站点(所以没有链接,对不起)和Internet Explorer 9的问题。

该网站是一个Rails 3应用程序,使用HTML 5,没有什么不寻常的 – 没有JavaScript,只是HTML和CSS。 HTML成功validation(使用W3Cvalidation器)。

现场用户都使用Windows XP上的Internet Explorer 8或Windows 7上的Internet Explorer 9.使用IE8的用户可以像使用Chrome一样使用该站点。

IE9用户虽然可以查看页面,但是如果他们尝试提交表单,IE会加载一个空白页面,其中源代码只包含html,head和body标签。 然后他们发现他们不能查看内部网上的任何页面,IE后退button不起作用。 如果我在内网服务器上使用tcpdump,我可以看到当用户点击提交时,没有数据通过客户端的线路发送,所以我只能假设IE的空白页面(及其源代码)。

我已经确保IE检测到该站点位于“Intranet区域”,并且该区域的默认安全设置为“中低”。 我尝试了兼容模式(Intranet站点的默认设置)并将其closures。

更糟糕的是,这种行为是不一致的 – 大约5%的时间成功提交表格,剩下的时间我们得到了上述结果。

我觉得我错过了一些基本的东西 – 我错过了什么?

兼容模式实际上可以由服务器控制,这将覆盖客户端上的设置。 你应该检查源代码中是否有html:

<meta http-equiv="X-UA-Compatible" content="xxxx" > 

如果是这样的话,你可能想用content =“IE-edge”来testing它,或者至lessvalidation它是否已经在你认为应该使用的模式下进行了testing。 我也会在低安全区testing它。

定义文档兼容性
http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx#SetMode

根据您使用的Web服务器,如果IE9浏览器尝试提交数据,则还应该检查服务器日志中是否有错误。

如果您使用开发人员工具(F12)并将浏览器模式和文档模式更改为不同的浏览器types,是否可以成功提交?