JavaScript: AJAX-Anfragen erkennen
Gibt es irgendeine Möglichkeit zu erkennen, Globale AJAX-Aufrufe (besonders die Antworten) auf einer web-Seite mit generischen JavaScript (nicht mit Rahmen)?
Hab ich schon überprüft die Frage "JavaScript erkennen, ein AJAX-event", hier auf StackOverflow, und versucht das patchen in der akzeptierten Antwort den code in meine Anwendung, aber es funktionierte nicht. Ich habe noch nie etwas mit AJAX vor, entweder so, ich weiß nicht genug, um es zu ändern, um zu arbeiten.
Ich brauche nichts besonderes, ich muss nur erkennen, alle (spezifische, wirklich, aber ich würde schon zu erkennen, alle ersten und gehen von dort aus) AJAX Antworten und patch Sie in einer IF-Anweisung zum Einsatz. So, irgendwann möchte ich so etwas wie:
if (ajax.response == "certainResponseType"){
//Code
}
zum Beispiel.
Update:
Es scheint, ich sollte klarstellen, dass ich nicht versuchen werde, um eine Anfrage zu senden - ich entwickle eine content-script und ich muss in der Lage sein, um erkennen der web-Seite der AJAX-Anfragen (nicht meine eigenen), so kann ich eine Funktion ausführen, wenn eine Antwort erfasst wird.
InformationsquelleAutor der Frage mythofechelon | 2012-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies kann ein wenig schwierig sein. Wie wäre es damit?
Habe ich nicht getestet, aber es sieht mehr oder weniger gut.
Beachten Sie, dass es möglicherweise nicht funktionieren, wenn Sie die Verwendung von frameworks (wie jQuery), da diese möglicherweise überschreiben
onreadystatechange
nach dem Aufrufsend
(ich glaube, jQuery). Oder Sie außer Kraft setzen könnensend
Methode (aber dies ist unwahrscheinlich). So ist es eine partielle Lösung.EDIT: Heute (Anfang 2018) dies wird komplizierter, mit die neue fetch API. Global
fetch
Funktion muss überschrieben werden, wie auch in ähnlicher Weise.InformationsquelleAutor der Antwort freakish
Hier einige code (getestet durch einfügen in Chrome 31.0.1650.63-Konsole) für das abfangen und protokollieren oder anderweitig Verarbeitung von ajax-requests und deren Antworten:
Dieser code löst das oben genannte Problem mit der akzeptierten Antwort:
Weil es sich nicht auf die 'onreadystatechange' callback wird un-verändert, sondern überwacht die "readyState" selbst.
Angepasst ich die Antwort von hier: https://stackoverflow.com/a/7778218/1153227
InformationsquelleAutor der Antwort Omn
Gibt diesem einen Versuch. Erkennt Ajax Antworten, dann habe ich eine bedingte mit dem XMLHttpRequest-propoerties readyState & status Funktion ausführen, wenn Antwort status = OK
Geändert:
Überwachen Sie alle JavaScript-Ereignisse in der browser-Konsole
InformationsquelleAutor der Antwort mmguy