我的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中工作得非常好。是否与操作系统有关?
任何解决方案都会有用。
谢谢!
答案 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中。