如何捕获页面使用Webbrowser / EmbeddedWB发出的所有AJAX请求?不幸的是,在针对AJAX请求时,不会触发BeforeNavigate2。
例如:在Google搜索栏中输入时发出的请求。
答案 0 :(得分:1)
如果我是你,我会在加载之后将自己的脚本注入每个页面。这是一个捕获所有AJAX请求并通知应用程序的脚本。
使用以下代码,您可以捕获jQuery
发出的每个AJAX请求(Haven尝试过,但我认为它不适用于非jQuery AJAX请求)。
$.ajaxSetup({
beforeSend: function() {
// before sending the request
},
complete: function() {
// after request completion
}
});
它甚至不是代码,但它可以为您提供您想要做的事情的线索。
当然使用这种方法时,您需要以某种方式与您的应用程序进行通信。例如,我使用我的编写协议和一个新的窗口命令,以便我的Delphi组件能够捕获和解析事件。
正如我所说,这里有很多选择,而我只是在提供线索。
答案 1 :(得分:1)
如果环境在您的控制之下。您可以使用自定义HTTP代理(例如,基于Indy)。
请参阅:Indy's TIdHTTPProxyServer: How to filter requests?
可以根据特定标头检测Ajax请求:
How to differentiate Ajax requests from normal Http requests?
更新:Microsoft网络论坛上的这个问题已经接受了答案: