【问题标题】:How to capture cascading 302 redirects in IE8 BHO?如何在 IE8 BHO 中捕获级联 302 重定向?
【发布时间】:2011-02-16 13:08:44
【问题描述】:

我目前正在为我的公司完成一个 C++ BHO 项目,但我在这个过程中发现了一个非常严重的错误,比我希望的要晚很多。我有一个 BHO,目前使用 SINK 来捕获 BeforeNavigate2、NavigateComplete2、NavigateError 和其他几个事件,但我在捕获 302 重定向 URL 时遇到了问题。

例如,假设我们有 4 个站点:

具有指向 B 的链接的起始站点 A 302 重定向到站点 C 的站点 B 302 重定向到站点 D 的站点 C, 最终站点 D

用户从站点 A 开始:点击站点 B:站点 B 重定向到站点 C,站点 C 重定向到站点 D:用户在站点 D 结束。

在这种情况下,我的 BeforeNavigate2 将捕获站点 B 的 URL,而我的 NavigateComplete 将捕获站点 D 的 URL。但是站点 C 对我的 BHO 来说是完全不可见的。在这种情况下,您可以在 B 和 D 之间添加任意数量的 302,但我无法捕获其中任何一个。

注意:我在 Internet Explorer 7 中通过将 DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION 添加到 GetHostInfo 标志来解决此问题,这使得每个重定向都触发 BeforeNavigate2。但似乎 IE8 不尊重这个标志:(

【问题讨论】:

    标签: c++ com internet-explorer-8 bho


    【解决方案1】:

    尝试使用 IHttpNegotiate 深入 HTTP。但这与将 HTTP 嗅探器注入您的应用程序相同。

    【讨论】:

      猜你喜欢
      • 2011-04-22
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2012-09-03
      • 2021-09-13
      • 2020-03-16
      • 2017-04-20
      相关资源
      最近更新 更多