6 Stimmen

Die Technik von Chrome's Firebug zum Verfolgen von Ajax-Anfragen

Ich versuche, meine Google Chrome-Erweiterung zu erstellen, um Ajax-Anfragen beim Surfen im Web zu verfolgen. Der einzige Weg, den ich gefunden habe, besteht darin, auf das DOMSubtreeModified-Ereignis zu lauschen. Das Ereignis wird bei jedem einzelnen Ajax-Ereignis ausgelöst, aber es gibt keine zusätzlichen Informationen zur Anfrage. Aber in der Firebug Google Chrome-Erweiterung gibt es die Verfolgung von Ajax-Anfragen mit vielen Details. Ich habe versucht, zu überprüfen, wie sie es im Quellcode machen, aber es ist schwer für mich zu verstehen.

Wissen Sie, wie man diese Ereignisse verfolgen kann, um einige Details zur Anfrage zu erhalten? Vielleicht könnte jemand einen Blick auf diese Technik von Firebug werfen oder vielleicht weiß jemand, wie sie es machen und mir sagen kann, wie sie es machen?

0 Stimmen

Hast du schließlich einen programmatischen Weg gefunden, um Ajax-Anforderungen abzufangen?

9voto

Boris Smus Punkte 7882

Es gibt ein paar Dinge, die Sie mit den Chrome-Entwicklertools zur Fehlerbehebung von AJAX-Anfragen tun können:

  1. Schauen Sie sich den Netzwerk-Tab an. Er verfolgt alle (AJAX-)Anfragen, deren Anfrage und Antwortheader.
  2. Aktivieren Sie das XHR-Konsolenprotokollieren in den DevTools (Klicken Sie mit der rechten Maustaste in die Konsole der Entwicklertools und wählen Sie "XMLHttpRequest-Protokollierung aktivieren").
  3. Legen Sie einen XHR-Breakpoint fest.

In Ihrem Fall sind DOM-Breakpoints nicht erforderlich. Außerdem würde dieser Ansatz nur funktionieren, wenn Ihre AJAX-Anfrage den DOM-Baum modifiziert.

0 Stimmen

Aber ich möchte diese Ajax-Ereignisse im Code der Erweiterung behandeln. Die Erweiterung muss Informationen über solche Anfragen an meinen Server senden. In den Chrome-Entwicklertools kann ich sie nur ansehen. Hast du eine Idee?

0 Stimmen

So? Du kannst dasselbe tun.

0 Stimmen

Aber wie? Könnten Sie bitte etwas Code posten, den ich in meine Erweiterung einfügen könnte, um Ajax-Ereignisse zu bearbeiten?

0voto

serg Punkte 106383

Aktuell gibt es keine Möglichkeit, alle Informationen zu Ajax-Anfragen programmgesteuert abzurufen, ähnlich wie im Netzwerk-Tab.

Es gibt das experimentelle chrome.experimental.webRequest.onCompleted.addListener, mit dem Sie Ajax-Anfragen abfangen, den zurückgegebenen Antwortcode (200,404) erhalten und einige Antwort-Header abrufen können. Sie werden den Antwort-Body jedoch nicht abrufen können.

0 Stimmen

Ich habe es gesehen. Danke für die Details zur Funktionsweise, wahrscheinlich werde ich das ausprobieren. Aber wissen Sie, welche möglichen Bedrohungen im Zusammenhang mit der Verwendung dieses experimentellen APIs bestehen? Ist es instabil?

0 Stimmen

@Luke Der größte Nachteil ist, dass du deine Erweiterung nicht in die Galerie einreichen kannst. Und es besteht keine Garantie dafür, dass diese Methode in der API bleibt.

0 Stimmen

Das tut weh.. Alle sagen, dass es keinen Weg gibt, es programmgesteuert zu tun. Also wie zum Teufel funktioniert dieses Firebug für Chrome, das Ajax-Anfragen verfolgt?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X