POST方法在IE-9中转换为GET

时间:2011-08-17 16:34:38

标签: jsp post get struts internet-explorer-9

我的JSP中有这行代码。 (我正在使用struts 1.3)

< html:form action =“screening / mine.do”method =“post”> 。 。 。 < / HTML:形式>

当调用与mine.do相对应的操作时(使用struts-config.xml),页面将作为GET而不是POST提交。由于这个原因,所有请求参数(包括所需的参数)都会丢失。此问题仅在IE-9中出现。

当我使用其他版本的IE或任何其他浏览器时,响应仍然是POST。如何在IE-9中将响应保留为POST?

编辑:我在此发现了另外一个问题。每当在新窗口中呈现页面时,都会出现此问题。其他地方,POST在IE-9中运行良好。

此外,此问题发生在Win7 / IE-8中,但在XP / IE-8中工作得非常好。是否与操作系统有关?

任何解决方案都会有用。

谢谢!

4 个答案:

答案 0 :(得分:13)

由于Windows 7中的IE安全设置,此问题正在发生。它也发生在Win-7的IE-8中。 (但在Win-XP的IE-8中工作正常)

在Windows-7的IE中有一个启用/禁用保护模式的选项。这是Vista / Windows-7的IE中的新功能,默认情况下为“Internet”区域和“本地Intranet”区域(或其中任何一个)启用此选项。在这两个地方禁用解决了这个问题。

工具 - >互联网选项 - >安全 - >互联网/本地内联网 - >取消选中“启用保护模式”选项。

答案 1 :(得分:2)

TL; DR:确保两个站点也在同一个区域。我有两个不同区域的网站,并且调用区域堆栈破坏了IE。

对于遇到这种情况的人(就像我一样),但发现保护模式设置无法解决问题,我在另一个帖子上写了这个:https://stackoverflow.com/a/12167814/649249

为我解决了这个问题。

答案 2 :(得分:0)

试试这个:method="POST"

该标准明确规定该方法可以具有值GET | POST(注意上限)。

答案 3 :(得分:0)

我们注意到有一些安全警告会停止处理以便用户确认。一旦使用确认警告,浏览器就会发送get而不是post。这在IE8中已经发生,不确定它是否仍然发生在IE9中。