Fangen Sie XMLHttpRequest ab und ändern Sie responseText

Ich versuche, ein Skript zu erstellen, das als Proxy / Wrapper für den Muttersprachler fungiertXMLHttpRequest Objekt, mit dem ich es abfangen, den responseText ändern und zum ursprünglichen onreadystatechange-Ereignis zurückkehren kann.

Der Kontext ist, wenn die Daten, die die App zu empfangen versucht, bereits im lokalen Speicher verfügbar sind, um den Vorgang abzubrechenXMLHttpRequest und die lokal gespeicherten Daten an die Erfolgs- / Fehlschlag-Rückrufmethoden der Apps zurückgeben. Angenommen, ich habe keine Kontrolle über die vorhandenen AJAX-Callback-Methoden der Apps.

Ich hatte ursprünglich folgende Idee ausprobiert ..

var send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data){
   //Do some stuff in here to modify the responseText
   send.call(this, data);
};

Aber wie ich jetzt festgestellt habe, ist der responseText schreibgeschützt.

Ich habe dann versucht, einen Schritt zurückzutreten und meinen eigenen vollständigen nativen Proxy an zu schreibenXMLHttpRequestund letztendlich meine eigene Version der nativen Methoden schreiben. Ähnlich wie hier beschrieben ...

http://www.ilinsky.com/articles/XMLHttpRequest/#implementation-wrapping

Es wurde jedoch schnell verwirrend und es war immer noch schwierig, die geänderten Daten wieder in das Original zurückzusetzenonReadyStateChange Methode.

Irgendwelche Vorschläge? Ist das überhaupt möglich?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage