【问题标题】:POST getting converted to GET across OSPOST 跨操作系统转换为 GET
【发布时间】:2011-08-24 08:58:05
【问题描述】:
我在运行我的应用程序时遇到了一种非常奇怪的问题。
当我访问一个网站并登录到我的应用程序时,POST 会自动转换为 GET。由于所有请求参数都因此丢失,页面显示错误屏幕。
此问题在 IE-8 (Windows 7) 中出现,但在 IE-8 (Windows XP) 中完全正常。
操作系统如何参与其中?有没有人遇到过这样的问题?这个问题也发生在 IE-9 中。
也请参考this 问题。任何解决方案都会很有帮助。
谢谢!!
【问题讨论】:
标签:
windows-7
internet-explorer-8
internet-explorer-9
struts-1
【解决方案1】:
此问题是由于 Windows 7 中 IE 中的安全设置而发生的。
在 Windows-7 的 IE 中有一个启用/禁用 保护模式 的选项。这是 Vista/Windows-7 的 IE 中的一项新功能,默认情况下,“Internet”区域和“Local Intranet”区域(或其中任何一个)启用此选项。在这两个地方禁用解决了这个问题。
工具 -> Internet 选项 -> 安全 -> Internet/本地 Intranet -> 取消选中“启用保护模式”选项。
【解决方案2】:
我参加这个聚会有点晚了,但我也遇到了这个,这让我发疯了。 IE(仅)正在将 POST 转换为 GET,这需要运行 Fiddler 才能确定。这个线程让我成功了,但保护模式不是交易。事实证明,一个站点位于 Internet 区域(发布帖子的页面),而另一个站点(接收帖子)位于 Intranet 区域。通过将调用页面添加到 Intranet 区域或受信任的站点,IE 停止将 POST 转换为 GET。看起来你不能在没有 IE 将 POST 转换为 get 的情况下调用区域堆栈,但你可以调用 down。对我们的大提示(我们在新窗口中打开 POST (target=_blank))是,当从 Internet 调用 Intranet 时,新页面会在新的 IE 窗口中打开,但是当“正确”配置时,新的弹出窗口会在新标签页中打开(预期行为)。