Question

How can I catch all the AJAX requests that a page makes with a Webbrowser / EmbeddedWB? BeforeNavigate2 unfortunately isn't fired for AJAX requests.

For example: requests which are made when you type in google search bar.

Was it helpful?

Solution

If the environment is under your control. you can use a custom HTTP proxy (based on Indy for example).

See: Indy's TIdHTTPProxyServer: How to filter requests?

Ajax requests can be detected based on their specific header:

How to differentiate Ajax requests from normal Http requests?


Update: this question on the Microsoft web forum has an accepted answer:

OTHER TIPS

If I were you, I would've injected my own script into every page after it's been loaded. This a script that captures all AJAX requests and informs the application.

Using the following code, you may capture every AJAX request made by jQuery (Haven't tried, but I don't think it works for non-jQuery AJAX requests).

$.ajaxSetup({
    beforeSend: function() {
        // before sending the request
    },
    complete: function() {
        // after request completion
    }
});

It's not even a code, but it can give you a clue for what you want to do.

Surely using this method, you're gonna need to somehow communicate with your application. For instance, I'd use my made up protocol and a new window command so that my Delphi component will be able to capture and parse the event.

As I said there are plenty options here and I'm just giving a clue.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top