症状
如果承载应用程序 WebOC (Web 浏览器控件) 具有 DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION 标志,Internet Explorer 11、 Internet Explorer 10、 Internet Explorer 9,或 Internet Explorer 8 失去该应用程序的 HTTP 方法。例如,当 WebOC 宿主应用程序发出 POST 请求并接收 307 临时重定向消息时,Internet Explorer 发出 GET 请求的新位置,而失去原来的 POST 请求中的数据。
解决方案
更新信息
若要解决此问题,请安装最新的 Internet Explorer 累积安全更新。要做到这一点,请转到Microsoft 更新。此外,请参阅技术信息最新的累积安全更新的 Internet Explorer。
注意:此更新最初包含在安全更新MS14-056: Internet Explorer 累积安全更新︰ 2014 10 月 14,。
详细信息
Urlmon 处理重定向而不是 WinInet 会自动执行这些操作。遗憾的是,Urlmon 和 WinInet 不同,在如何处理重定向。WinInet 始终保持 HTTP 方法,而 Urlmon 变为一个 GET 请求的 HTTP 方法。
如果 WebOC 主机应用程序想要控制重定向,它通过 IBindCallbackRedirection 发送重定向通知订阅。应用程序还将设置要关闭 WinInet 自动重定向的 DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION 标志。现在,重定向处理从 WinInet 移至 Urlmon。在当前的实现中,Urlmon 创建一个新的 CINET 对象,然后重新启动该事务。但是,BindVerb 设置为 BINDVERB_GET,而不是在 CTransaction::GetBindInfoEx() 的 BINDVERB_POST。因此,Urlmon 发送一个 GET 请求。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
参考资料
请参阅 Microsoft 用于描述软件更新的术语。